This post就是我刚才读的。如何在C++中实现Singleton
他在C++中实现Singleton的方式让我感到困惑。我得到了这几个问题,而且这里是他的代码:
template<typename T>
class Singleton {
public:
static T& getInstance() { //Question 1
return instance;
}
private:
static T instance;
};
class DebugLog : public Singleton<DebugLog> { //Question 2
public:
void doNothing() {}
};
问题
我想我们应该把
static T& getInstance()
的定义类主体以外的,对不对?他试图让
class DebugLog
成为一个单独的类,但是当他继承Singleton<DebugLog>
时,DebugLog
不存在了吧?如果对,那么模板类Singleton
如何实例化一个不存在的类?
1 - 你不需要。 2 - [好奇地重复出现的模板模式](http://en.wikipedia.org/wiki/Curiously_recurring_template_pattern)。 – birryree
@birryree,谢谢。 – Alcott