智能指针
Posted beixiaobei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能指针相关的知识,希望对你有一定的参考价值。
template <class T> class SharedPtr { public: SharedPtr():ptr(new T()),count(new int(1)){}//无参构造 explicit SharedPtr(T *src):ptr(str),count(new int(1)){}//有参构造 explicit SharedPtr(T value):ptr(new T(value)),count(new int(1)){}//有参构造 SharedPtr(const SharedPtr &rhs) :ptr(rhs.ptr), count(rhs.count)//拷贝构造 { ++(*count); } SharedPtr& operator=(const SharedPtr &rhs)//赋值运算符 { ++(*rhs.count); if (--(*count) == 0) { delete ptr; delete count; } ptr = rhs.ptr; count = rhs.count; return *this; } ~SharedPtr() { if (--(count) == 0) { delete ptr; delete count; } } T* get() const //获取资源 { return ptr; } private: T *ptr;//原始指针 int *count;//引用计数 };
以上是关于智能指针的主要内容,如果未能解决你的问题,请参考以下文章
如何设置 vscode 的代码片段,以便在自动完成后自动触发 vscode 的智能感知?