#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
发表回复