auto_ptr与scoped_ptr的实现见本人的上篇博客。三、shared_ptrshared_ptr的实现原理是通过引用计数来实现,只有当引用计数为1时才释放空间,否则只需将引用计数减1.拷贝和赋值将引用计数加1,具体代码如下:template<typenameT>
classSharedPtr
{
public:
SharedPtr();
..
分类:
其他好文 时间:
2016-03-23 23:48:50
阅读次数:
210
最近在补看《C++ Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰,一解我以前的多处困惑。C++面试过程中,很多面试官都喜欢问智能指针相关的问题,比如你知道哪些智能指针?shared_ptr的设计原理是什么?如果让你自己设计一个智能指针,你如何完成?等等……。而
分类:
编程语言 时间:
2016-03-22 22:01:54
阅读次数:
252
引言:由于C++语言没有自动内存回收机制,程序员每次new出来的内存都要手动delete。程序员忘记delete,流程太复杂,最终导致没有delete,异常导致程序过早退出,没有执行delete的情况并不罕见。RAII(ResourceAcquisitionIsInitialization)资源分配即初始化,定义一个类来封装资..
分类:
编程语言 时间:
2016-03-22 00:54:14
阅读次数:
350
以下内容分为八部分,分别是 一、类型指针的定义 二、无类型指针的定义 三、指针的解除引用 四、取地址(指针赋值) 五、指针运算 六、动态内存分配 七、字符数组的运算 八、函数指针 一、类型指针的定义。 对于指向特定类型的指针,在C中是这样定义的: [cpp] view plain int *ptr;
RAII(ResourceAcquisitionIsInitialization):资源分配即初始化,定义封装一个类,用来实现调用构造函数时就可完成资源的分配和初始化,在调用析构函数就可完成资源的清理,以实现对资源的初始化和清理。智能指针:用自动化或者说智能的指针来实现对动态内存的释放。它是一个类..
分类:
编程语言 时间:
2016-03-21 02:07:36
阅读次数:
509
1 MKDEV(ma,mi) 2 #define MKDEV(ma,mi) ((ma)<<8 | (mi)) 所以MKDEV(5, 0),最后得到的值为【5*(2的8次幂)+0】,等于1280。2.dev_t 3.MAJOR 和 MINOR 4.major_to_index 5.ERR_PTR,通过
分类:
其他好文 时间:
2016-03-19 23:08:52
阅读次数:
605
1.enum:http://en.cppreference.com/w/cpp/language/enum 2.weak_pr:http://en.cppreference.com/w/cpp/memory/weak_ptr shared_pr给释放了,weak_pr给缓冲一下作用 3.thread
分类:
编程语言 时间:
2016-03-15 19:07:53
阅读次数:
222
const int MaxObjectNum = 10; template <typename T> class ObjectPool { template <typename... Args> using Constructor = std::function<std::shared_ptr<T>
分类:
编程语言 时间:
2016-03-12 01:36:35
阅读次数:
755
FILE不是C语言关键字,只是标准C中的标准输入输出中定义的一个新的数据类型 stdio.htypedef struct _iobuf{ char* _ptr; int _cnt; char* _base; int _flag; int _file; int _charbuf; int _bufsi
分类:
编程语言 时间:
2016-03-11 13:47:59
阅读次数:
151
优先级操作符描述例子结合性 1 ()[]->.::++-- 调节优先级的括号操作符数组下标访问操作符通过指向对象的指针访问成员的操作符通过对象本身访问成员的操作符作用域操作符后置自增操作符后置自减操作符 (a + b) / 4;array[4] = 2;ptr->age = 34;obj.age =
分类:
编程语言 时间:
2016-03-08 21:23:17
阅读次数:
192