niszczenie "obiektów" klasy wewnątrz konstruktora
Napisane: poniedziałek, 11 kwietnia 2011, 11:58
Pewna klasa:
W pliku .h mam:
i w przypadku wywołania, tak jak wynika z kodu, jeden obiekt powinien być tworzony, a drugi "obiekt" (a raczej tylko definicja typu), zniszczony.
Kod się kompiluje, ale nie działa jak należy. Do obiektu stworzonego i tego niestworzonego można się tak samo odwołać.
Chciałbym żeby po prostu nie było po nim śladu i już nie był dostępny.
KOD cpp: UKRYJ
// to jest zawartość konstruktora, w konstruktorze podawany jest tylko jeden argument - host;
// dokładniej - plik cpp
switch (host)
{
case 1:
this->host_1 = gcnew Mail::Host_1();
delete this->host_2;
break;
case 2:
this->host_2 = gcnew Mail::Host_2();
delete this->host_1;
break;
}
// dokładniej - plik cpp
switch (host)
{
case 1:
this->host_1 = gcnew Mail::Host_1();
delete this->host_2;
break;
case 2:
this->host_2 = gcnew Mail::Host_2();
delete this->host_1;
break;
}
W pliku .h mam:
KOD cpp: UKRYJ
[..]
Mail::Host_1^ host_1;
Mail::Host_2^ host_1;
[...]
Mail::Host_1^ host_1;
Mail::Host_2^ host_1;
[...]
i w przypadku wywołania, tak jak wynika z kodu, jeden obiekt powinien być tworzony, a drugi "obiekt" (a raczej tylko definicja typu), zniszczony.
Kod się kompiluje, ale nie działa jak należy. Do obiektu stworzonego i tego niestworzonego można się tak samo odwołać.
Chciałbym żeby po prostu nie było po nim śladu i już nie był dostępny.