-5
私はコンストラクタとデストラクタを作成しました。デストラクタが指定されたコードにガベージ値を与えるのはなぜですか?
class A
{
public:
int x,y;
public:
A(int x=0,int y=0)
{
cout<<"Ctor: ("<<x<<","<<y<<")"<<endl;
}
~A()
{
cout<<"Dtor: ("<<x<<","<<y<<")"<<endl;
}
};
ただし、デストラクタでは、ガベージ値が表示されています。
int main()
{
int m,n;
cin>>m>>n;
A a(8,4);
cout<<"main"<<endl;
int x=2;
if(x)
{
A a1(m,esult5);
A a2(4,5);
}
}
ソリューション:このコンストラクタで
intput: 5 6
Ctor: (8,4)
main
Ctor: (5,5)
Ctor: (4,5)
Dtor: (4197584,0)
Dtor: (0,0)
Dtor: (2,0)
メンバー変数はどこでも初期化しません。 – Justin
また、別のインデントスタイルを見つけてください。このスタイルは一貫性がなく、読みにくいです。 – Justin
'esult5'とは何ですか?私は 'a1'を作成する前または後にその参照を参照しません。また、コードを適切にインデントしてください。 –