为一个C++用户的。使用指针可以算的上是常态,但在使用过程中。多的时间,可能是由于new要么malloc对象,上次忘记的释放结束(我会犯这样一个错误)。内存泄露。而此时智能指针可能能够帮助我去解决问题。智能指针(smart pointer)是利用个引用计数的策略去处理指针的释放,从而保证指针的安全性...
分类:
编程语言 时间:
2015-08-15 10:19:11
阅读次数:
132
auto_ptr它是C++标准库()为了一个智能指针类模板来解决资源泄漏所提供的问题(注意:这只是一个简单的智能指针)auto_ptr在事实原则的实现RAII,对资源的访问,在施工时间。释放资源时,析构函数,而相关的指针操作超载。使用起来就像普通的指针。std::auto_ptr pa(new Cl...
分类:
编程语言 时间:
2015-08-13 08:49:24
阅读次数:
229
内存管理是一个比较繁琐的问题,C++中有两个实现方案: 垃圾回收机制和智能指针。垃圾回收机制因为性能等原因不被C++的大佬们推崇, 而智能指针被认为是解决C++内存问题的最优方案。1. 智能指针定义 一个智能指针就是一个C++的对象, 这对象的行为像一个指针,但是它却可以在其不需要的时候自动删除.....
分类:
编程语言 时间:
2015-08-11 17:56:54
阅读次数:
167
智能指针:实际指行为类似于指针的类对象 ,它的一种通用实现方法是采用引用计数的方法。下面我们来看看智能指针实现的原理和方法:
1.智能指针将一个计数器与类指向的对象相关联,引用计数跟踪共有多少个类对象共享同一指针;
2.每次创建类的新对象时,初始化指针并将引用计数置为1;
3.当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与之相应的引用计...
分类:
其他好文 时间:
2015-08-10 22:22:02
阅读次数:
149
智能指针概述:
智能指针用来管理动态对象。其行为类似于常规指针,重要的区别是:它负责自动释放所指向的对象。
C++ 11标准库提供两种智能指针:shared_ptr、unique_ptr
区别是:shared_ptr允许多个指针指向同一个对象;unique_ptr则独占所指向的对象。
另外,还有一种weak_ptr的伴随类,它是一种弱引用,指向shared_ptr所管理的对象。
...
分类:
编程语言 时间:
2015-08-10 12:07:49
阅读次数:
232
1.抛弃临时对象,让所有的智能指针都有名字.2.类向外传递 this 的 shared_ptr 让类继承 enable_shared_from_this. 然后返回 shared_from_this();3. 例子有时间再补上.
分类:
编程语言 时间:
2015-08-09 22:05:31
阅读次数:
158
参考《21天学通C++》第25、第26、第28章节,对STL位标志、智能指针与C++异常处理进行介绍。
一、使用STL位标志
位是存储设置与标志的高效方法。标准模板库提供了可帮助组织与操作位信息的类。
1. bitset类
std::bitset不是STL容器类,因为它不能调整长度,这是一个实用类,针对处理长度在编译阶段已知的位序列进行了优化。需包含#include 。
2. 实例化bi...
分类:
编程语言 时间:
2015-08-09 18:49:13
阅读次数:
149
一点都不智能的智能指针
#include
using namespace std;
template
class Auto
{
public:
// 避免编译器报错,需要显式类型转换
explicit Auto(T* data = NULL) : m_data(data) {}
// 转移拷贝
Auto(Auto& that) : m_data(change(that)) {}
...
分类:
编程语言 时间:
2015-08-08 20:00:08
阅读次数:
132
《More Effective C++》ITEM M9他提到auto_ptr。说是当异常产生的时候。怎么释放为对象分配的堆内存,避免反复编写内存释放语句。PS:这里书里面提到函数退出问题,函数退出会清理栈内存,无论是怎么正常退出还是异常退出(仅有一种例外就是当你调用 longjmp 时。Longjm...
分类:
编程语言 时间:
2015-08-08 11:41:18
阅读次数:
144
使用OSG的人都知道OSG的内存管理方式采用了智能指针,通过智能指针的方式让OSG自己处理对象的销毁工作。在OSG中有两个智能指针类型,一个就是我们再熟悉不过的ref_ptr,另外一个可能很多人不一定经常用,但确实非常好的observer_ptr。这两种类型都是作为智能指针而出现的,那他们到底有什么区别?为什么会出现两个类似的东西?下面我们慢慢揭开它们的面纱。
其实它们是两种智能指针类型...
分类:
其他好文 时间:
2015-08-04 15:40:37
阅读次数:
198