#include <iostream>
using namespace std;
class A{
int b;
public:
A(){
cout<<"Constructor for class A called\n";
b = 6;
}
~A(){
cout<"Destructor called for class A\n";
}
};
class B{
A a;
public:
B(){
cout<<"Constructor for class B called\n";
}
~B(){
cout<<"Destructor called for class B\n";
}
};
int main(void){
B obj1;
return 0;
}
Если приведенный выше код выполняется в конструкторов для А и В называются, как ожидалось, но когда объект Б т.е. obj1 выходит из области видимости только деструктор B, называется. Почему A destructor не вызывается, хотя объект obj является одним из членов B?деструктор вызов
@Nawaz Спасибо за ответ. Это оригинальный код. Деструктор А не называется. – niting112
Деструктор A определенно называется. Ваш код как есть не компилируется, см. ~ A(). – juanchopanza
@juanchopanza Да, это называется. Но VS2010 не выбрал ошибку для использования одиночного '<'. – niting112