Konstruktor kopii - błąd debugera

0

Witam, otóż mam pewien problem z debugowaniem się programu, a mianowicie kompilacja przechodzi ok - dodam że używam Microsoft Visual Studio 2012.
A oto treść zadania i mój kod.

Zadanie:
1.Stworzyć klasę A, która zawiera wskaźnik typu char do wiersza tekstowego. Konstruktor sparametryzowany pobiera z listy argumentów formalnych wiersz tekstowy, wyjaśnia, ile elementów zawiera ten wiersz, dynamicznie alokuje pamięć i kopiuje wiersz tekstowy, pobierany z listy argumentów konstruktora, do składowej klasy. Konstruktor domyślny inicjuje wskaźnik do wiersza tekstowego na NULL. Klasa zawiera metodę disp() dla wyświetlania wiersza na monitorze.
Każdy z konstruktorów wyprowadzi na monitor jeden z komunikatów „konstruktor domyślny”, „konstruktor sparametryzowany” oraz „konstruktor kopii”, destruktor – „destruktor”.

A oto moj kod:

 // Program1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
using namespace std;

class A
{
	char *wskaznik;
public:
	A(): wskaznik(NULL)
	{
		cout<<"Konstruktor domyślny"<<endl;
	}

	A(char *tekst);

	A(A &obiekt);

	~A();

	void disp();
};

A::A(char *tekst)
{
	int dlugosc;

	if(tekst)
	{
		dlugosc=strlen(tekst);

		try
		{
			wskaznik=new char[dlugosc+1];
		}

		catch(bad_alloc)
		{}

		strcpy_s(wskaznik, dlugosc, tekst);
	}

	else
		wskaznik=NULL;

	cout<<"Konstruktor sparametryzowany"<<endl;
}

A::A(A &obiekt)
{
	int dlugosc;

	if(obiekt.wskaznik)
	{
		dlugosc=strlen(obiekt.wskaznik); 
		try
		{
			wskaznik=new char[dlugosc+1];
		}

		catch (bad_alloc) {}
		strcpy_s (wskaznik, dlugosc, obiekt.wskaznik);
	}

	else
		wskaznik=NULL;

	cout<<"Konstruktor kopii"<<endl;
}

A::~A()
{
	if(wskaznik)
	{
		delete [] wskaznik;

		cout<<"Dekonstruktor"<<endl;
	}
}

void A::disp()
{
	if(wskaznik)
		cout<<wskaznik<<endl;
}


int _tmain(int argc, _TCHAR* argv[])
{
	A ob("obiekt 1");

	ob.disp();

	system("pause");
	return 0;
}

0

Dziękuje za szybką pomoc!

0

Jakie rozwiązanie tego było? Mam teraz to samo zadanie i ten sam problem :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1