作业:
#include <iostream>using namespace std;class Per{private:string name;int age;int *height;int *weight;public:Per(){height=nullptr;weight=nullptr;cout << "Per::无参构造函数" <<endl;}Per(string n,int a,int h,int w):name(n),age(a),height(new int(h)),weight(new int(w)){cout << "Per::有参构造函数" <<endl;}Per(const Per &other):name(other.name),age(other.age),height(new int(*(other.height))),weight(new int(*(other.weight))){cout << "Per::拷贝构造函数" << endl;}~Per(){delete height;height=nullptr;delete weight;weight=nullptr;cout << "Per::析构函数" << endl;}void Pershow(){cout << "name=" << name << "age=" << age << "height=" << *height << "weight=" << *weight <<endl;}};class Stu{private:double score;Per per;public:Stu(){cout << "Stu::无参构造函数" << endl;}Stu(double s,Per p):score(s),per(p){cout << "Stu::有参构造函数" <<endl;}Stu(const Stu &other):score(other.score),per(other.per){cout << "Stu::拷贝构造函数" << endl;}~Stu(){cout << "Stu::析构函数" << endl;}void Stushow(){cout << "score=" <<score <<endl;per.Pershow();}};int main(){Per p;Per p1("张嘉强",23,165,114);Per p2(p1);p2.Pershow();cout << "-----------------------" <<endl;Stu s;Stu s1(99.99,p1);s1.Stushow();Stu s2(s1);s2.Stushow();return 0;}
结果图: