Witam, mam problem podczas deklaracji dynamicznej tablicy. Otoz, nie wiem jak program moglby sprawdzac, czy tablica zostala utworzona czy nie. Destruktor usuwa tablice nawet gdy jej nie tworze i wtedy pojawia sie blad. Czy moglby ktos napisac jak sprawdzic czy tablica zostala utworzona ( zarowno dla tablicy typu int oraz char ) ? Oto fragment mojego kodu:
class klasa {
int numerek1;
int numerek2;
int *tab;
char *napis;
public:
klasa ( int, int );
klasa ( char * );
klasa ( int, int, char * );
klasa ( klasa & );
~klasa();
klasa & operator = ( const klasa & );
klasa operator + ( klasa & );
klasa operator * ( klasa & );
klasa operator - ( klasa & );
void wypisz ();
void wypisztab();
friend int zaprzyjazniona ( klasa & );
friend ostream & operator << ( ostream &, klasa & );
friend istream & operator >> ( istream &, klasa & );
};
klasa::~klasa() {
delete[] napis;
delete[] tab;
}
klasa::klasa ( int a, int b, char *c ){ // konsturktor
delete[] napis;
napis=new char [strlen(c)+1];
strcpy(napis, c);
numerek1=a;
numerek2=b;
}
klasa :: klasa ( klasa & n ){ // knstruktor kopiujacy
delete[] napis;
napis = new char [strlen(n.napis)+1];
numerek1=n.numerek1;
numerek2=n.numerek2;
}
klasa & klasa::operator = ( const klasa & m ){
delete[] napis;
napis = new char [strlen(m.napis)+1];
strcpy(napis, m.napis);
numerek1=m.numerek1;
numerek2=m.numerek2;
cout << "operator przypisania\n";
return *this;
}
pozdrawiam