1、思维导图
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=(Person &other)
{
if(this != &other)
{
age = other.age;
*p = *(other.p);
cout << "Person拷贝赋值函数" << endl;
}
return *this;
}
//析构函数
~Person()
{
delete p;
p = NULL;
cout << "释放那个了point指向的空间" << endl;
cout << "Person的析构函数" << endl;
}
};
int main()
{
Person person1; // 使用无参构造函数创建对象
Person person2(person1); // 使用拷贝构造函数创建对象副本
Person person3; // 创建另一个对象
person3 = person2; // 使用拷贝赋值函数赋值给person3
return 0;
}