[C++]day3-类的特殊成员函数的运用

有以下类定义,写出该类的构造函数,析构函数,拷贝构造函数,要求,所有类对象的空间都是用new动态申请。

class stu

{

        string name;

        int age;

        int score;

        int *high;

};

#include <iostream>

using namespace std;

class stu{
    string name;   //0-31
    int age;        //32-35
    int score;      //36-40
    int *high;       //41-47
                    //48

public:
    stu(string name,int age,int score,int high) :name(name),age(age),score(score),high(new int (high))
    {
//赋值
//        this->name=name;
//        this->age=age;
//        this->score=score;
//        this->high=high;
    }

    stu (const stu &STU):name(STU.name),age(STU.age),score(STU.score),high(STU.high)
    {
        //this->high=new int (*STU.high);
        memcpy(this->high,STU.high,sizeof(*(STU.high)));
        cout<<"深拷贝"<<endl;
    }

    void show()
    {
        cout<<"姓名:"<<name<<"    "<<"年龄:"<<age<<"    "<<"成绩:"<<score<<"    "<<"身高:"<<*high<<endl;
    }

    //析构函数
    ~stu()
    {

        delete high;
        //cout<<"stu的析构函数"<<endl;
    }
};

int main()
{

    //定义类指针,在new申请空间时才调用构造函数
    stu *SS=new stu("李四",20,99,188);
    SS->show();

    cout<<"深拷贝结果"<<endl;

    //拷贝
    stu *STD=SS;
    STD->show();

    //释放堆区空间
    delete SS;
    SS=nullptr;
    delete STD;
    STD=nullptr;

    return 0;
}

思维导图 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值