c++ day3

#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;
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值