记住: APIs往往要求访问原始资源,所以每一个RAII类应该提供一个“取得其所管理之资源”的办法。 对原始资源的访问可能经由显示转换或隐式转换。一般而言显示转换比较安全,但隐式转换对客户比较方便。 tr1::shared_ptr和auto_ptr重载了指针取值操作符 (operator->和ope ...
分类:
编程语言 时间:
2018-06-18 17:05:48
阅读次数:
211
注意: 赋值RAII对象必须一并复制它所管理的资源,所以资源的拷贝行为决定RAII对象的拷贝行为。 普遍而常见的RAII类拷贝行为是:抑制拷贝,实行引用计数法。 Lock ml1(&m);Lock ml2(ml1); //将ml1复制到ml2身上,会发生什么? 解决办法1. 禁止复制,把拷贝操作定义 ...
分类:
编程语言 时间:
2018-06-18 16:10:04
阅读次数:
191
记住: 为防止资源泄漏,请使用RAII对象,它们在构造函数中获得资源并在析构函数中释放资源。 两个常被使用的RAII类分别是tr1::shared_ptr和auto_ptr。前者通常是较佳选择,因为其copy行为比较直观。若选择auto_ptr,复制动作会使它(被复制物)指向null。 使用auto ...
分类:
编程语言 时间:
2018-06-18 13:29:41
阅读次数:
169
我们学习C++的时候,想必都会听说一个叫智能指针的东西,在初听这个词的时候,我们都难免不被“智能”两个字所吸引,感觉它会比较高级,让人有种忍不住想用一把的冲动。 但事实上,它可能并没有我们所想的那样“智能”、好用,它本质上其实就是一个对象,它去接管了原指针所管理的资源。但这里单单用一个对象就想有“智 ...
分类:
其他好文 时间:
2018-05-20 19:29:49
阅读次数:
191
Resource Acquisition Is Initialization, often referred to by the acronym RAII (or, erroneously, RIIA), is a popular design pattern in several object o ...
分类:
其他好文 时间:
2018-01-10 11:28:02
阅读次数:
274
智能指针的使用 智能指针是在 <memory> 标头文件中的 std 命名空间中定义的。 它们对 RAII 或“获取资源即初始化”编程惯用法至关重要。 此习惯用法的主要目的是确保资源获取与对象初始化同时发生,从而能够创建该对象的所有资源并在某行代码中准备就绪。 实际上,RAII 的主要原则是为将任何 ...
分类:
编程语言 时间:
2017-12-07 15:06:24
阅读次数:
210
RAII(Resource Acquisition Is Initialization),也称为“资源获取就是初始化”,是C++语言的一种管理资源、避免泄漏的惯用法。C++标准保证任何情况下,已构造的对象最终会销毁,即它的析构函数最终会被调用。简单的说,RAII 的做法是使用一个对象,在其构造时获取 ...
分类:
其他好文 时间:
2017-11-29 23:43:12
阅读次数:
401
1.event.stopPropagation(); 事件处理过程中,阻止了事件冒泡,但不会阻击默认行为(它就执行了超链接的跳转) 2.return false; 事件处理过程中,阻止了事件冒泡,也阻止了默认行为(比如刚才它就没有执行超链接的跳转) 还有一种有冒泡有关的: 3.event.preve ...
分类:
其他好文 时间:
2017-11-25 15:14:43
阅读次数:
255
C++ 异常机制分析 阅读目录 C++异常机制概述 throw 关键字 异常对象 catch 关键字 栈展开、RAII 异常机制与构造函数 异常机制与析构函数 noexcept修饰符与noexcept操作符 异常处理的性能分析 正文 回到顶部 C++异常机制概述 异常处理是C++的一项语言机制,用于 ...
分类:
编程语言 时间:
2017-09-11 15:43:34
阅读次数:
210
阅读目录 C++异常机制概述 throw 关键字 异常对象 catch 关键字 栈展开、RAII 异常机制与构造函数 异常机制与析构函数 noexcept修饰符与noexcept操作符 异常处理的性能分析 阅读目录 C++异常机制概述 throw 关键字 异常对象 catch 关键字 栈展开、RAI ...
分类:
编程语言 时间:
2017-09-02 09:39:45
阅读次数:
3200