【发布时间】:2016-08-17 22:05:00
【问题描述】:
在一个类中,我有一个代表该类的单例实例的静态成员:
class A {
public:
static const std::shared_ptr<A> INSTANCE;
private:
A();
};
为了防止出现更多实例,我将构造函数设为私有。现在我无法初始化静态变量,因为初始化程序无法访问私有成员。这是我在 .cpp 文件中使用的代码:
const std::shared_ptr<A> A::INSTANCE = std::make_shared<A>();
工厂方法也无济于事,因为它也必须是公共的。我还能做些什么来完成这项工作?注意:如果可能,我想避免使用典型的 static get() 方法。
【问题讨论】:
标签: c++