dan*_*nny 5 c++ shared-ptr c++11
我想创建一个类的共享指针,并有一个工厂方法返回它,同时保持构造函数\析构函数的保护.由于共享指针无法访问构造函数或析构函数,因此出现编译错误.
我正在使用llvm 4.1,但我正在寻找一个可以独立于编译器的解决方案(除了使构造函数\析构函数公开).
这是一个代码示例:
class Foo
{
public:
static std::shared_ptr<Foo> getSharedPointer()
{
return std::make_shared<Foo>();
}
protected:
Foo(int x){}
~Foo(){}
};
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
只需自己分配指针,而不是调用 make_shared:
static std::shared_ptr<Foo> getSharedPointer()
{
return std::shared_ptr<Foo>(new Foo);
}
Run Code Online (Sandbox Code Playgroud)
但请注意,这需要将析构函数公开。
| 归档时间: |
|
| 查看次数: |
6708 次 |
| 最近记录: |