思维导图
#include <string>
class Person
{
string name;
int *age;
public:
// 构造函数
Person():name(),age(new int(20)){}
Person( string name, int *age) : name(name), age(new int(*age)) {}
// 析构函数
~Person()
{
delete age;
}
// 拷贝构造函数
Person(const Person &other) : name(other.name), age(new int(*other.age)) {}
// 拷贝赋值运算符
Person &operator=(const Person &other)
{
if (this != &other)
{
name = other.name;
delete age;
age = new int(*other.age);
}
return *this;
}
};
class Stu : public Person
{
const double score;
public:
// 构造函数
Stu( string name, int age, double socre) : Person(name, age), score(score) {}
~Stu(){}
Stu(const Stu &other):Person(other),score(other.score){}
Stu &operator=(const Stu &other)
{
Person::operator=(other);
return *this;
}
};