1、
#include <iostream>using namespace std;
class Per
{
private:string name;int age;double *hight;double *weight;
public:void show(){cout << "姓名:" << name << endl;cout << "年龄:" << age << endl;cout << "身高:" << *hight << endl;cout << "体重:" << weight << endl;}Per(){cout << "无参构造函数" << endl;}Per(string name, int age, double hight, double weight):name(name),age(age),hight(new double(hight)),weight(new double(weight)){cout << "有参构造函数" << endl;}~Per(){cout << "析构函数" << endl;cout << this << endl;}Per(const Per &other):name(other.name),age(other.age),hight(new double( *(other.hight) )),weight(new double( *(other.weight) )){cout << "Per::拷贝构造函数" << endl;}
};class Stu
{
private:int score;Per p1;
public:Stu(){cout << "无参构造函数" << endl;}Stu(int score, string name, int age, double hight, double weight):score(score),p1(name,age,hight,weight){cout << "有参构造函数" << endl;}~Stu(){cout << "析构函数" << endl;cout << this << endl;}Stu(const Stu &other):score(other.score),p1(other.p1){cout << "Stu::拷贝构造函数" << endl;}};int main()
{Per p1;Per p2("zhangsan", 18, 165, 90);Per p3(p2);p3.show();Stu s1;Stu s2(88,"lisi",20,159,100);Stu s3(s2);return 0;
}
2、思维导图