你正在寻找一个高质量的,开源的,与平台和编译器无关的程序库的集合?看一下Boost吧。想加入一个由雄心勃勃的,充满天赋的正致力于最高水平的程序库设计和实现工作的C++程序员们组成的团体么?看一下Boost吧。想了解C++将来可能会是什么样子的?看一下Boost吧。 Boost是一个C++开发人员组成 ...
分类:
编程语言 时间:
2017-04-25 10:09:28
阅读次数:
191
因为之前也仅仅是了解智能指针,要我说预计仅仅能说个它是干什么的。用不了几分钟。 昨天花了一天时间各种百度,算是对智能指针有了一点了解。这篇文章基本就是这次分享会的PPT的copy。没有底层的东西,多是概念。 我认为理解智能指针须要了解它发展的三个过程:起因,经过,结果。这篇文章主要讲述的是起因。经过 ...
分类:
其他好文 时间:
2017-04-22 14:37:48
阅读次数:
297
#include using namespace std; // 定义仅由HasPtr类使用的U_Ptr类,用于封装使用计数和相关指针 // 这个类的所有成员都是private,我们不希望普通用户使用U_Ptr类,所以它没有任何public成员 // 将HasPtr类设置为友元,使其成员可以访问U_... ...
分类:
其他好文 时间:
2017-04-13 18:07:09
阅读次数:
160
智能指针的行为像是指针,但是没有提供加的功能。例如,Item 13中解释了如何使用标准auto_ptr和tr1::shared_ptr指针在正确的时间自动删除堆上的资源。STL容器中的迭代器基本上都是智能指针:当然,你不能通过使用“++”来将链表中的指向一个节点的内建指针移到下一个节点上去,但是li ...
分类:
编程语言 时间:
2017-04-10 09:37:47
阅读次数:
270
1 // run in windows: std::system("pause") 2 #include 3 #include 4 #include 5 #include 6 7 using namespace std; 8 using namespace std::placeholders; 9 ... ...
分类:
其他好文 时间:
2017-04-07 23:29:58
阅读次数:
251
目录 条款1:视C++为一个语言联邦 条款2:尽量以const、enum、inline替换#define 条款3:尽可能使用const 条款4:确定对象使用前已先被初始化 条款5:了解C++默认编写并调用哪些函数 条款6:若不想使用编译器自动生成的函数,就该明确拒绝 条款7:为多态基类声明virtu ...
分类:
编程语言 时间:
2017-04-07 15:09:21
阅读次数:
351
本文我们主要来总结一下前文介绍过的智能指针相关原理及实现,顺便补充一下前文未提到的shared_ptr删除器部分的内容. 总结: 1.智能指针,通过RAII机制,构造对象时完成资源的初始化,析构对象时,对资源进行清理和汕尾. 2.auto_ptr,防止拷贝/赋值对象后,析构时多次delete对象导致 ...
分类:
编程语言 时间:
2017-04-03 18:12:00
阅读次数:
240
参考资料: [内存管理]智能指针的好帮手weak_ptr ...
分类:
其他好文 时间:
2017-04-03 12:04:43
阅读次数:
158
在开始本文内容之前,我们再来总结一下,前文内容: 1.智能指针采用RAII机制,在构造对象时进行资源的初始化,析构对象时进行资源的清理及汕尾. 2.auto_ptr防止拷贝后析构释放同一块内存,采用"转移所有权"的方法.(实际开发中auto_ptr并不实用) 3.scoped_ptr与auto_pt ...
分类:
编程语言 时间:
2017-04-03 11:30:02
阅读次数:
250
其实auto_ptr并不难理解。其本质上是一种类,这个类可以进行指针运算符的操作。但是他可以进行指针的智能管理,克服了裸指针抛出异常时,没有被调用虚构函数的风险。 其使用有一个最简单的逻辑,就是一旦碰见裸指针,就将其交给智能指针去管理。 auto_ptr不能作为STL容器的元素,因为STL在存入元素 ...
分类:
其他好文 时间:
2017-04-02 17:45:56
阅读次数:
170