通常当我实现单例时,我使实例动态化,并有一个成员函数来删除它.在这种情况下,我正在使用嵌入式设备,我被告知我不能使用动态内存.它对一个类在类声明中有自己的静态实例是有效的,并通过引用返回它?
(此处不关注线程安全性.)
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;
Run Code Online (Sandbox Code Playgroud)