可能重复:
如何调用::性病:: make_shared一类,只有保护的或私有的构造函数?
我想创建一个共享的指针类,并有一个返回它,同时保持保护构造\析构函数的工厂方法。 由于共享指针不能访问的构造函数或析构函数,我得到的编译器错误。
我使用LLVM 4.1,但我期待的,可以是独立的编译器(除了使构造\析公)的解决方案。
这是一个代码示例:
class Foo
{
public:
static std::shared_ptr<Foo> getSharedPointer()
{
return std::make_shared<Foo>();
}
protected:
Foo(int x){}
~Foo(){}
};
有任何想法吗?