浅拷贝 为什么只析构一次
#include<iostream>
using namespace std;
class A
{
public:
A()
{x =new int;*x = 5;cout<<"构造函数执行"<<endl;}
~A()
{delete x;cout<<"析构函数执行"<<endl;}
A(A& a)
{x = a.x;cout<<"复制构造函数执行"<<endl;}
private:
int *x;
};
int main()
{
A* a = new A();
A b =*a;
return 0;
}
结果是
构造函数执行
复制构造函数执行
析构函数执行
为什么析构函数只执行了一次呢。另外的一次哪去了?大侠帮忙,小弟求教