U盘PE| w764位旗舰版下载 | U盘装win7系统 | U盘启动 |win7pe | win10下载 |加入收藏土豆PE官网U盘PE,U盘装win7系统,win7pe,U盘启动,U盘装系统,w764位旗舰版下载站!
当前位置:主页 > 帮助中心 > 帮助中心 >

C++RAII

来源:http://www.tudoupe.com时间:2022-07-25

C++RAII

RAII,在c++中引用( 链接 )的解释就是资源获取即初始化(Resource Acquisition Is Initialization),它是C++编程技术。简单来说就是,用于初始化构造函数的资源类,构造函数释放相应的资源,使用C++本地变量自动释放机制,可以减少一定数量的内存泄漏.

简单例子

例子一

这是最简单的例子,构造函数中新的内存,析构函数释放内存。但是代码有个问题,如果构造器中的内存分配失败,会怎样呢?构造函数没有返回值,如何确定内存分配是否成功?查了一些资料之后( 构造函数的异常处理 ),构造函数出错,消息只能通过例外向外部发送。
请看例子二

例子二

例子二加上了异常,在此例子中, 模拟了内存分配失败.运行结果如上。从结果来看,还存在一个问题,Child_test,已经实现的儿童对象,异常之后没有分析,如果子对象也要求内存,所以有记忆泄漏的风险。事实上, 我们可以通过添加主函数来防止捕获.
如下例子三

例子三

实例三个主要函数捕捉了异常,并通常分析了由RaiTest构造器建模的儿童测试。

标准库的包装器

标准库中RAII的典型应用如下:标准库提供多个RAII包,以管理用户提供的资源:

  • std::unique_ptr和 std::shared_ptr用于管理动态分配的内存,或管理由用户提供调试器的通用指针所代表的任何资源;
  • std::lock_guard, std::unique_lock, 和 std::shared_lock用于管理相互排斥对象。
    最常见的是 std::lock_guard,当多个线程锁定和解锁时常用

Copyright © 2012-2014 Www.tudoupe.Com. 土豆启动 版权所有 意见建议:tdsky@tudoupe.com

土豆系统,土豆PE,win7系统下载,win7 64位旗舰版下载,u盘启动,u盘装系统,win10下载,win10正式版下载,win10 RTM正式版下载,win8下载,电脑蓝屏,IE11修复,网络受限,4K对齐,双系统,隐藏分区,系统安装不了,U盘装系统,笔记本装系统,台式机装系统,diskgenius运用,GHSOT装系统,U盘修复,U盘技巧,U盘速度,U盘不能格式化,U盘复制发生错误,U盘加密,U盘选购,开机黑屏,蓝屏,进不了系统,上不了网,打不开程序,点击无反应,系统设置,PE个性化,PE添加网络,PE维护系统

点击这里给我发消息