类与对象之深复制


#pragma once
#include<iostream>
#include<cstring>
using namespace std;
class CMessage
{
private:
char* pmessage;
public:
CMessage(const char* text = "中国一点也不能少!")
{
pmessage = new char[strlen(text) + 1];
strcpy_s(pmessage, strlen(text) + 1, text);
}
void show()
{
cout << pmessage << endl;
}
CMessage(const CMessage& oMes)
{
size_t len = strlen(oMes.pmessage) + 1;
pmessage = new char[len];
strcpy_s(pmessage, len, oMes.pmessage);
}
~CMessage()
{
cout << "Destructor called!" << endl;
delete[]pmessage;
}



};

int main()
{
CMessage Mes1("爱我中华!");
CMessage Mes2(Mes1);
Mes1.show();
Mes2.show();
return 0;
}
爱我中华!
爱我中华!
Destructor called!
Destructor called!

本章是对《类与对象之析构函数和动态内存分配》的一个补充(


Author: T1g3r
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source T1g3r !
评论
  TOC