类与对象之析构函数和动态内存分配


​ 程序中经常要为类成员申请动态内存空间。比如在构造函数中,使用new操作符申请了一块动态内存空间,那么该对象生命周期结束时,申请的动态内存空间如何释放呢?我们通过一个简单的类来学习在析构函数中释放动态内存空间。

#include<iostream>
#include<cstring>
using namespace std;
class CMessage
{
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()
{
cout << "Destructor called.\n";
delete[]pmessage;
}
#include "l3_11.h"
int main()
{
CMessage Mes1;
CMessage Mes2("爱我中华!");
CMessage* pm = new CMessage("我爱我的祖国");
Mes1.show();
Mes2.show();
pm->show();
delete pm;
return 0;
}
中国一点也没有少!
爱我中华!
我爱我的祖国
Destructor called.
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