草庐IT

SmartPointer

全部标签

c++ - 为什么不直接使用静态变量作为智能指针的引用计数

当我查看“增强”版本的智能指针时——增强是添加了引用计数——我看到他们使用了一些“复杂”的引用计数技术,例如一个完全独立的类或一个指向整数的指针。举个例子:templateclassSmartPointer{T*mp_T;unsignedint*mp_Count;public:...alltheAPIs...};我想知道,yield是多少?由于目标是让所有实例共享该值,为什么不将其声明为静态成员变量:templateclassSmartPointer{T*mp_T;staticunsignedintm_Count;public:...alltheAPIs...};我一定错过了什么,但经

c++ - 智能指针运算符=

我见过一些以两种方式实现operator=的智能指针:A)将原始指针分配给另一个原始指针的一个:SmartPointer&operator=(constSmartPointer&rhs){deletem_ptr;m_ptr=rhs.m_ptr;return*this;}B)还有一个在赋值后使右边的指针无效:SmartPointer&operator=(SmartPointer&rhs){deletem_ptr;m_ptr=rhs.m_ptr;rhs.m_ptr=nullptrreturn*this;}我的问题是更建议使用哪个?我对B)的问题是,如果有人想进一步操作第二个智能指针(见下面