在一些代碼,我看到像這樣使用單模板這是如何推動單身人士?
template<typename T>
class Singleton
{
public:
Singleton(T& instance)
{
assert(!sfpInstance || (sfpInstance==&instance));
sfpInstance = &instance;
}
static T& getInstance()
{
assert(sfpInstance);
return *sfpInstance;
}
private:
static T* sfpInstance;
};
和類:
class MyClass : public Singleton<MyClass>
{
protected:
MyClass() : Singleton<MyClass>(*this) {}
}
我不知道這怎麼能作爲單身?
如果可以使用它,那麼使用它的正確方法是什麼。
編輯:MyClass的構造函數受到保護。
簡短的回答是「不要使用單身人士,他們是邪惡的,無法調試」。 –
「Singleton」中的構造函數應該受到保護。 –
使用單例的正確方法根本不是。 –