5.Boost之“资源申请即初始化” RAII
1.RAII:資源申請(qǐng)即初始化:
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stdlib.h>
#include <string>
?
using namespace std;
?
class mystr
{
public:
??? char *p = nullptr;
public:
??? mystr(const char *str)
??? {
??????? cout << "構(gòu)建" << endl;
??????? int length = strlen(str);
??????? p = new char[length + 1];
??????? strcpy(p, str);
??????? p[length] = '\0';
??? }
??? ~mystr()
??? {
??????? cout << "銷毀" << endl;
??????? delete[] p;
??? }
};
?
void go()
{
??? char *p = new char[100];
??? //RAII避免內(nèi)存泄露,一般情況下,堆上的內(nèi)存當(dāng)作棧上來(lái)使用
??? //棧內(nèi)存有限,希望自動(dòng)釋放,用很大的內(nèi)存。
??? mystr str1 = "ABCD";
}
?
void main()
{
??? go();
??? cin.get();
}
運(yùn)行結(jié)果:
構(gòu)建
銷毀
?總結(jié)
以上是生活随笔為你收集整理的5.Boost之“资源申请即初始化” RAII的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 河南省宝丰县征兵去哪里?
- 下一篇: 6.Boost之smartpointer