C++中智能指针的工作原理和简单实现
2013-05-06 20:12
483 查看
智能指针:它的一种通用实现方法是采用引用计数的方法。智能指针将一个计数器与类指向的对象相关联,引用计数跟踪共有多少个类对象共享同一指针。
每次创建类的新对象时,初始化指针并将引用计数置为1;
当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与之相应的引用计数;
对一个对象进行赋值时,赋值操作符减少左操作数所指对象的引用计数(如果引用计数为减至0,则删除对象),并增加右操作数所指对象的引用计数;这是因此左侧的指针指向了右侧指针所指向的对象,因此右指针所指向的对象的引用计数+1;
调用析构函数时,构造函数减少引用计数(如果引用计数减至0,则删除基础对象)。
实现智能指针有两种经典策略:一是引入辅助类,二是使用句柄类。这里主要讲一下引入辅助类的方法,看下面的例子:
?
使用该方式的内存结构图如下:
每次创建类的新对象时,初始化指针并将引用计数置为1;
当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与之相应的引用计数;
对一个对象进行赋值时,赋值操作符减少左操作数所指对象的引用计数(如果引用计数为减至0,则删除对象),并增加右操作数所指对象的引用计数;这是因此左侧的指针指向了右侧指针所指向的对象,因此右指针所指向的对象的引用计数+1;
调用析构函数时,构造函数减少引用计数(如果引用计数减至0,则删除基础对象)。
实现智能指针有两种经典策略:一是引入辅助类,二是使用句柄类。这里主要讲一下引入辅助类的方法,看下面的例子:
?
使用该方式的内存结构图如下:
相关文章推荐
- C++中智能指针的工作原理和简单实现
- C++中智能指针的工作原理和简单实现
- C++中智能指针的工作原理和简单实现
- C++中智能指针的工作原理和简单实现
- C++中智能指针的工作原理和简单实现
- C++中智能指针的工作原理和简单实现
- C++中智能指针的工作原理和简单实现
- C++中智能指针的工作原理和简单实现
- C++中智能指针的工作原理和简单实现
- C++中智能指针的工作原理和简单实现
- C++中智能指针的工作原理和简单实现
- 【转】C++ 引用计数技术及智能指针的简单实现
- C++智能指针及其简单实现
- C++ 几种智能指针的简单实现
- C++ 智能指针简单实现
- C++智能指针及其简单实现
- C++智能指针及其简单实现
- C++引用计数技术及智能指针的简单实现
- 简单模拟实现c++智能指针-指针移交控制权
- C++智能指针,指针容器原理及简单实现(auto_ptr,scoped_ptr,ptr_vector).