#include
using namespace std;
class person
{
public:
person()
{
}
person(int a)
{
m_age=new int(a);
}
person& operator=(person &p)
{
if (m_age!=NULL)
{
delete m_age;
m_age=NULL;
}
m_age=new int(*p.m_age);
return *this;
}
~person()
{
if(m_age!=NULL)
{
delete m_age;
m_age=NULL;
}
}
int *m_age;
};
int main()
{
person p1(10);
person p2; //从这行开始 为什么这边我不调用有参构造函数来定义这个对象,这个结果就执行不了
//接着我尝试过在person p2 和 p3的下方重新开辟堆区给p2和p3的 int* m_age进行初始化
//随后又进行delete操作结果也还是没有执行,没有执行我想要的重构‘=’号后输出的结果。
//第二点就是我不写这个默认构造函数编译都过不了,不是说 有参构造函数写了就可以不写
默认构造函数了嘛。
person p3;
p3=p2=p1;
cout<<*p3.m_age<<endl;
system("pause");
return 0;
}