程序中经常要为类成员申请动态内存空间。比如在构造函数中,使用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.