#include <iostream>
using namespace std;
class per
{
string name;
int age;
int *p;
int *q;
public:
per(string name,int age,int a,int b)
{
this->name=(name);
this->age=age;
p=new int(a);
q=new int(b);
*q=b;
*p=a;
cout << "有参构造"<<endl;
}
void show()
{
cout <<"姓名"<<name<<endl;
cout <<"年龄"<<age<<endl;
cout <<"身高"<<*p<<endl;
cout <<"体重"<<*q<<endl;
}
per(per &other)
{
this->name=other.name;
this->age=other.age;
p=new int;
*p=*(other.p);
q=new int;
*q=*(other.q);
cout<<"per的拷贝构造函数"<<endl;
}
~per()
{
cout <<"准备释放空间"<<endl;
delete p;
delete q;
cout <<"per的析构函数"<<endl;
}
};
class stu
{
int chengji;
public:
per p1;
stu(int chengji,string name,int age,int a,int b):chengji(chengji),p1(name,age,a,b)
{
cout <<"stu的有参构造"<< endl;
}
void show()
{
p1.show();
cout<<chengji<<endl;
}
stu(stu &other):p1(other.p1)
{
this->chengji=other.chengji;
cout<<"stu的拷贝构造函数"<<endl;
}
~stu()
{
cout<<"stu的析构函数"<<endl;
}
};
int main()
{
stu p2(100,"lxx",18,180,70);
stu p3=p2;
p2.show();
cout << "-----------------" << endl;
p3.show();
return 0;
}