我有一些参数化类,其指针私有成员实现为std::shared_ptr
. 事实上,这个指针是一个指向参数化(模板)结构的指针。还有一个方法返回相同的指针。但没有包裹在std::shared_ptr
. 它看起来像这样:
template<typename SomeType> class SomeClass{
private:
std::shared_ptr<SomeStruct<SomeType>> ptr; // pointer
SomeStruct<SomeType>* someMethod(...); // method
};
在我的某个班级方法中的某个地方,我希望有以下任务:
ptr = someMethod(..);
这是正确的吗?事实上,我希望这个方法在需要时分配内存,然后这个指针由shared_ptr
. operator=
我收到一个未找到正确的错误。我应该首先在我的方法中包装最近分配的对象的指针吗?