大挪耗

c++深拷贝和浅拷贝

#include "iostream"

using namespace std;
class CGirl
{
public:
    
    string m_name; //姓名属性
    int m_age;     //年龄属性
    int* m_ptr;     //指针成员

    //没有参数的普通构造函数
    CGirl(){
        m_name.clear();
        m_age=0;
        m_ptr=nullptr;
        cout<<"没有参数的普通构造函数"<<endl;
    }
    //没有重载的拷贝构造函数
    CGirl(const CGirl&a){
        m_name=a.m_name;
        m_age=a.m_age;
        m_ptr=new int();
        *m_ptr=*a.m_ptr;
        cout<<"没有重载的拷贝构造函数"<<endl;
    }
    //析构函数
    ~CGirl(){
        if(m_ptr!= nullptr)delete m_ptr;
        m_ptr= nullptr;
        cout<<"调用了析构函数"<<endl;
    }
    void show(){
        cout<<"超女的名字是:"<<m_name<<"年龄是:"<<m_age<<"m_ptr:"<<m_ptr<<"*m_ptr:"<<*m_ptr<<endl;
    }
};
int main(){
CGirl a;
a.m_name="大挪耗";
a.m_age=21;
a.m_ptr= new int(4);
a.show();
CGirl b(a);
b.show();

    return 0;
}

输出:

没有参数的普通构造函数
超女的名字是:大挪耗年龄是:21m_ptr:0x20b607b6540m_ptr:4 没有重载的拷贝构造函数 超女的名字是:大挪耗年龄是:21m_ptr:0x20b607b6560m_ptr:4
调用了析构函数
调用了析构函数

进程已结束,退出代码为 0


已发布

分类

可以收藏大挪耗一下。下载麻烦点城通网盘,站长保证下载速度,不会限速的,放心点就是了;分卷,安卓下载为txt:程序下载为url,不会下载参考不会下载。如果你想让本站活的久一点,请直接捐助

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注