5.Boost之“资源申请即初始化” RAII

来源:互联网 发布:游戏鼠标 知乎 编辑:程序博客网 时间:2024/06/05 07:01


1.RAII:资源申请即初始化:

#define_CRT_SECURE_NO_WARNINGS

#include<iostream>

#include<stdlib.h>

#include<string>

 

usingnamespacestd;

 

classmystr

{

public:

   char *p = nullptr;

public:

   mystr(constchar *str)

   {

       cout <<"构建" << endl;

       intlength =strlen(str);

       p =newchar[length + 1];

       strcpy(p,str);

       p[length] = '\0';

   }

   ~mystr()

   {

       cout <<"销毁" << endl;

       delete[]p;

   }

};

 

voidgo()

{

   char *p = newchar[100];

   //RAII避免内存泄露,一般情况下,堆上的内存当作栈上来使用

   //栈内存有限,希望自动释放,用很大的内存。

   mystrstr1 ="ABCD";

}

 

voidmain()

{

   go();

   cin.get();

}

运行结果:

构建

销毁

 
0 0
原创粉丝点击