shared_ptr代码实现,当前命名为ushared_ptr。
1、定义模板指针T* ptr_和计数指针int* red_count_.
2、空构造。
3、实例化构造,获取真实类型对象,并且计数new为1.
4、创建引用函数,通过参数获取真实类型对象和计数指针对象,并且计数加一。
5、重载operator=函数,通过参数获取真实类型对象和计数指针对象,并且计数加一。
6、重载 operator*和operator-> 实现指针功能。
7、创建获取真实类型对象的函数。
8、创建获取计数的函数。
9、创建析构函数,计数减一,当计数为0时析构真实类型对象。
代码及测试如下:
#include
#include
#include
#include
#include