1
2
#include <iostream>
using namespace std;
class person {
private:
int *age;
string &name;
public:
person(int age,string name):age(new int(age)),name(name)
{}
~person()
{
delete age;
}
person(const person &other):age(new int(*(other.age))),name(name)
{}
person &operator=(const person &other)
{
*(this->age)=*(other.age);
this->name=other.name;
return *this;
}
int get_age()
{
return *age;
}
string &get_name()
{
return name;
}
};
class stu{
private:
double *score;
person per;
public:
stu(double score,int age,string name):score(new double(score)),per(age,name)
{}
~stu()
{
delete score;
}
stu(const stu &other):score(new double(*(other.score))),per(18,"kfc")
{}
stu &operator=(const stu &other)
{
*(this->score)=*(other.score);
this->per=other.per;
return *this;
}
void show()
{
cout << "age:" << per.get_age() << endl;
cout << "name:" << per.get_name() << endl;
cout << "score=" << *score << endl;
}
};
int main()
{
stu s1(99,18,"kfc");
s1.show();
stu s2(100,17,"lll");
s1=s2;
s1.show();
return 0;
}