5.Boost之“资源申请即初始化” RAII
1.RAII:資源申請即初始化:
#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 << "構建" << 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避免內存泄露,一般情況下,堆上的內存當作棧上來使用
??? //棧內存有限,希望自動釋放,用很大的內存。
??? mystr str1 = "ABCD";
}
?
void main()
{
??? go();
??? cin.get();
}
運行結果:
構建
銷毀
?總結
以上是生活随笔為你收集整理的5.Boost之“资源申请即初始化” RAII的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 河南省宝丰县征兵去哪里?
- 下一篇: AI 趋势