【发布时间】:2012-01-11 07:40:23
【问题描述】:
通常,当我实现一个单例时,我会将实例设为动态并有一个成员函数来删除它。在这种情况下,我正在使用嵌入式设备,但有人告诉我不能使用动态内存。一个类在类声明中拥有自己的静态实例并通过引用返回它是否有效?
(这里不考虑线程安全。)
class Foo {
private:
static Foo singleton;
Foo() { }
Foo(const Foo &rhs);
Foo &operator=(const Foo &rhs);
public:
inline static Foo &Instance(void) {
return singleton;
}
};
Foo Foo::singleton;
【问题讨论】:
-
通常当我实现一个单例时,我会做噩梦:P
-
如果你也被告知不要使用单例......虽然也许这是一个测试?
-
@R.MartinhoFernandes 还有,小猫死了。
-
@Kerrek SB - 不,这不是测试。当我登录时,单身人士已经在代码库中,我的任务似乎符合这种模式。