您的位置:首页 > 编程语言 > C语言/C++

C++中的赋值并不会构造新的对象

2011-11-01 17:33 267 查看
程序如下,为什么结果是:

A

B

~B

~A

~A

而不是:

A

A

B

~B

~A

~A

呢,求解答!!!

class A

{

public:

A(){cout<<"A"<<endl;}

~A(){cout<<"~A"<<endl;}

};

class B

{public:

B(A &a):_a(a){cout<<"B"<<endl;}

~B(){cout<<"~B"<<endl;}

private:

A _a;

};

int main()

{

A a; //调用A的构造函数输出A

B b(a); //为什么这里不先调用基类A的构造函数呢?????????????????

return 0;

}

//只分配了,一个空间但是自动释放了两次。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: