条款18:让接口容易被正确使用,不易被误用
1,好的接口很容易被正确使用,不容易被误用。你应该在你的所有接口中努力达成这些性质。
2,“促进正使用”的办法包括接口的一致性,以及与内置类型的行为兼容。
3,“阻止误用”的办法包括建立新类型,限制类型上的操作,束缚对象值,以及消除客户的资源管理责任。
4,shared_ptr支持定制型删除器。这可以防范DLL问题,可以用来自动解...
分类:
编程语言 时间:
2014-05-25 18:22:08
阅读次数:
297
std::auto_ptr 析构的时候调用 delete
操作符来自动释放所包含的对象boost::scoped_ptr / boost::scoped_array不能传递它所包含的对象的所有权
到另一个作用域指针boost::shared_ptr /boost::shared_array在内部记录...
分类:
其他好文 时间:
2014-05-15 02:01:07
阅读次数:
353
循环引用:引用计数是一种便利的内存管理机制,但它有一个很大的缺点,那就是不能管理循环引用的对象。一个简单的例子如下:#include#include#include#includeclassparent;classchildren;typedefboost::shared_ptr
parent_pt...
分类:
其他好文 时间:
2014-05-09 13:01:22
阅读次数:
326
最近正在进行《Effective C++》的第二遍阅读,书里面多个条款涉及到了shared_ptr智能指针,介绍的太分散,学习起来麻烦,写篇blog整理一下。
LinJM @HQU
2014/05/05
shared_ptr是一个智能指针。在C++ 11颁布之前,它包含在TR1(Technical Report 1)当中,现在囊括在C++11的标准库中。
智能指针
智能指...
分类:
其他好文 时间:
2014-05-07 05:50:43
阅读次数:
437
boost的智能指针给编程带来了极大的便利,不需要关心内存的释放,不要要调用delete,而且还可以定制delete的方法。其实boost的智能指针是可以当成scope_exit来用的,同样是退出时处理。但是凡事都是有利有弊,boost的shared_ptr如果在循环引用的时候会出现无法释放内存的情况,所谓循环引用就是A智能指针类里存放B的智能指针,B的智能指针类里存放A,将a、b的值互相设置。增...
分类:
其他好文 时间:
2014-05-03 21:06:19
阅读次数:
274
这篇文章主要来源于:codeguru网站的一篇文章:A TR1 tutorial:smart
pointer (详细介绍了C++的智能指针,尤其是shared_ptr)。众所周知,在 TR1
之前,C++标准库中的智能指针只有auto_ptr,但由于它的【排他所有权模式】(exclusive own...
分类:
编程语言 时间:
2014-04-30 18:01:06
阅读次数:
478