作业2
#include <iostream>
using namespace std;
class Person
{
private:
int age;
int *p;
public:
//无参构造
Person():p(new int(89))
{
age = 18;
}
//有参构造
Person(int age,int num)
{
this->age = age;
this->p=new int(num);
}
//拷贝构造函数
Person (Person &other)
{
age=other.age;
p=new int(*(other.p));
}
//拷贝赋值函数
Person &operator=(const Person &other)
{
if(this!=&(other))
{
age=other.age;
p=new int(*(other.p));
}
return *this;
}
//析构函数
~Person()
{
delete p;
p=nullptr;
}
//展示函数
void show()
{
cout<<"age="<<age<<endl;
cout<<"*p="<<*p<<endl;
}
};
int main()
{
Person * ptr=new Person(19,165);
Person * ptr2=new Person();
ptr->show();
ptr2=ptr;
ptr2->show();
return 0;
}