Oto mój strukturę AW C++, jak napisać destruktor do zwalniania pamięci wskaźnika do struktury?
struct A {
int a1;
int a2;
~A() { }
};
B
jest inna konstrukcja, która zawiera wskaźnik do
struct B {
B(int b, A* a)
: b1(b), ptr2A(a)
{}
int b1;
A* ptr2A;
~B() {
delete b1;
// traverse each element pointed to by A, delete them <----
}
};
Później używam poniżej kod
int bb1;
vector <A*> aa1;
// do some stuff
B *ptrB = new B(bb1, aa1);
muszę usunąć/free wszystko pamięć wskazywana przez ptrB. Dlatego muszę napisać poprawny destruktor wewnątrz struktury B. Jak przejść przez każdy element wskazany przez A i usunąć je?
Potrzebujesz książki w języku C++. Próbujesz łączyć ze sobą różne rzeczy z 'C' i próbować" usuwać "automatyczne zmienne. Co więcej, w 'A' nie ma nic do przejrzenia - po prostu' usuń ptr2A'. – Yuushi
Dlaczego usuwasz b1? – StarPinkER
możliwy duplikat [Jak pisać destruktor, gdy mam wskaźniki w klasie?] (Http://stackoverflow.com/questions/5317735/how-to-write-destructor-when-i-hpoint-pointers-in-class) – jogojapan