一、场景对象体系二、场景对象生命周期管理场景对象的生命周期,不适合采用原始的c++管理方式, 即由使用者自己负责删除。而应该采用引用计数方式, 自动负责删除。采用引用计数方式, 目前用法比较广的分两类:1、智能指针, 如boost::shared_ptr, 这种方式原理是基于c++对象的生命周期和析...
分类:
其他好文 时间:
2015-01-07 14:48:16
阅读次数:
184
在阅读 Effective C++时,对RAII开始不理解,现总结如下:
RAII是Resource acquisition is initialization的缩写形式,即“资源获取就是初始化”,是C++等编程语言常用的管理资源、避免内存泄露的方法。它保证在任何情况下,使用对象时先构造对象,最后析构对象。
根据RAII 对资源的所有权可分为常性类型和变性类型,代表者分别是boost:shared_ptr和std::auto_ptr;从所管资源的初始化位置上可分为外部初始化类型和内部初始化类型。...
分类:
编程语言 时间:
2014-12-29 18:32:33
阅读次数:
177
Shared_ptr允许当智能指针被建立起来是指定一个资源释放函数绑定于智能指针身上,也就是说在shared_ptr被初始化的同时也可以指定其管理的资源的释放函数。Shared_ptr提供的某个构造函数接受两个实参:一个是被管理的指针,另一个是引用次数变为0时将被调用的“删除器”。Shared_ptr构造函数坚持其第一个参数必须是个指针。它支持定制型删除器。
缺省情况下C++以by val...
分类:
编程语言 时间:
2014-12-24 21:33:06
阅读次数:
217
shared_ptr智能指针 shared_ptr 的声明初始化方式由于指针指针使用explicit参数 必须显示声明初始化shared_ptr pNico = new string("nico"); // ERRORshared_ptr pNico{new string("nico")}; // ...
分类:
编程语言 时间:
2014-12-12 16:19:11
阅读次数:
419
顾名思义,boost::shared_ptr是可以共享所有权的智能指针,首先让我们通过一个例子看看它的基本用法:
#include
#include
#include
class implementation
{
public:
~implementation() { std::cout <<"destroying implementation\n"; }
void d...
分类:
编程语言 时间:
2014-12-01 16:00:11
阅读次数:
163
导读
最近在补看《C++ Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰,一解我以前的多处困惑。C++面试过程中,很多面试官都喜欢问智能指针相关的问题,比如你知道哪些智能指针?shared_ptr的设计原理是什么?如果让你自己设计一个智能指针,你如何完成?等等……。而且在看开源的C++项目时,也能随处看到智能指针的影子。这说明智能指针不仅是面试官爱问的题...
分类:
编程语言 时间:
2014-11-30 07:10:14
阅读次数:
311
导读最近在补看《C++ Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰,一解我以前的多处困惑。C++面试过程中,很多面试官都喜欢问智能指针相关的问题,比如你知道哪些智能指针?shared_ptr的设计原理是什么?如果让你自己设计一个智能指针,你如何完成?等等……。而且在看开源的C++项目时,也能随处看到智能指针的影子。这说明智能指针不仅是面试官爱问的题材,更是...
分类:
编程语言 时间:
2014-11-29 23:09:08
阅读次数:
422
导读最近在补看《C++ Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰,一解我以前的多处困惑。C++面试过程中,很多面试官都喜欢问智能指针相关的问题,比如你知道哪些智能指针?shared_ptr的设计原理是什么?如果让你自己设计一个智能指针,你如何完成?等等……...
分类:
编程语言 时间:
2014-11-29 23:02:05
阅读次数:
380
template class shared_ptr;template class weak_ptr;// This class is an internal implementation detail for shared_ptr.class SharedPtrControlBlock {tem.....
分类:
其他好文 时间:
2014-11-25 23:16:19
阅读次数:
207
http://stackoverflow.com/questions/27109379/what-is-shared-ptrs-aliasing-constructor-for
分类:
编程语言 时间:
2014-11-25 12:36:36
阅读次数:
134