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相关推荐

  1. boost::system模块实现初始化顺序的测试程序

    boost::system模块实现初始化顺序的测试程序 实现功能 C++实现代码 实现功能 boost::system模块实现初始化顺序的测试程序 C++实现代码 #include <boost ...

  2. boost C++知识点(一)

    1 boost总览: Boost.Any Boost.Any 提供了一个名为 boost::any 的数据类型,可以存放任意的类型. 例如,一个类型为 boost::any 的变量可以先存放一个 in ...

  3. blob转file对象_C++核心准则C.41:构造函数生成的对象应该被完全初始化

    C.41: A constructor should create a fully initialized object C.41构造函数生成的对象应该被完全初始化 Reason(原因) A cons ...

  4. boost线程(二)

    1 创建线程 就像std::fstream类就代表一个文件一样,boost::thread类就代表一个可执行的线程.缺省构造函数创建一个代表当前执行线程的实例.一个重载的构造函数以一个不需任何参数的函 ...

  5. BOOST 线程完全攻略 - 基础篇 .

    C++多线程开发是一个复杂的事情,mfc下提供了CWinThread类,和AfxBeginThread等等函数,但是在使用中会遇到很多麻烦事情,例如线程之间参数传递的问题,我们一般都是把参数new一个 ...

  6. C/C++ 开发 boost 库参考手册整理(2) 【学习笔记】

    文档声明: 以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正.并且该文档在后期会随着学习的深入不断补充完善.感谢各位的参考查看. 笔记资料仅供学习交流使用,转载请标明出处 ...

  7. C++ Boost Thread 编程指南

    http://www.cppblog.com/shaker/archive/2007/10/06/33583.html 0 前言 标准C++线程即将到来.CUJ预言它将衍生自Boost线程库,现在就由 ...

  8. 【Boost】boost库中thread多线程详解8——call_once仅运行一次

    还有一个问题没有解决:如何使得初始化工作(比如说构造函数)也是线程安全的.比方说,如果一个引用程序要产生唯一的全局的对象,由于实例化顺序的问题,某个函数会被调用来返回一个静态的对象,它必须保证第一次被 ...

  9. Boost asio 官方教程简介

    1. 概述 本章介绍了 Boost C++ 库 Asio,它是异步输入输出的核心. 名字本身就说明了一切:Asio 意即异步输入/输出. 该库可以让 C++ 异步地处理数据,且平台独立. 异步数据处理 ...

最新文章

  1. JSP针织生产管理系统
  2. KindEditor编辑器在ASP.NET中的使用
  3. HDU - 4821 String(字符串哈希+优化)
  4. UIview需要知道的一些事情:setNeedsDisplay、setNeedsLayout
  5. opencv相机标定和人头姿态估计案例
  6. fastq质量值_fastq 数据格式解析
  7. scala 单元测试_Scala中的法律测试简介
  8. 常熟理工学院计算机考研,2018江苏专转本考生必看-常熟理工学院介绍
  9. Android studio gradle 无法获取 pom文件
  10. 哔哩哔哩公司swot分析_可口可乐公司2019年SWOT分析
  11. 1024程序员:算法仓鼠创业
  12. 现代操作系统(原书第四版)课后题答案 —— 第一章 引论
  13. 2021年上半年国家软考系统分析师论文和案例分析
  14. ble协议栈从零开始七(linklayer 之 privacy)
  15. Python数据处理基础操作
  16. 手机一个2k屏60hz,一个1080p屏90hz,哪个好呀?
  17. MySQL(MariaDB):解决“ Host ‘*‘ is not allowed to connect to this MariaDB server”
  18. Python安装失败0x80070642错误解决方法
  19. 用php搭建公众号服务器,如何快速给自己的微信公众号搭建自己的后台服务端
  20. C++ 检测程序是否在运行

热门文章

  1. boost::program_options::options_description相关的测试程序
  2. boost::polygon模块实现自定义polygon相关的测试程序
  3. boost::phoenix::bind相关的测试程序
  4. boost::hana::if_用法的测试程序
  5. boost::hana::has_common用法的测试程序
  6. boost::minimum_degree_ordering用法的测试程序
  7. boost::geometry::num_points用法的测试程序
  8. GDCM:DICOM文件转储飞利浦ECHO的测试程序
  9. boost::container模块实现vector选项
  10. Boost:bimap双图的序列化的测试程序