#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のオブジェクトが範囲外になったときのみBのデストラクタが呼び出されます。 AのobjがBのメンバーの1つであるにもかかわらず、なぜAのデストラクタが呼び出されないのですか?デストラクタコール
@Nawaz返信ありがとうございます。これが元のコードです。 Aのデストラクタは呼び出されません。 – niting112
Aのデストラクタは間違いなく呼び出されます。あなたのコードはコンパイルされません。〜A()を参照してください。 – juanchopanza
@juanchopanzaはい、それは呼び出されます。しかし、VS2010は単一の '<'を使用するとエラーをスローしませんでした。 – niting112