读书人

单态类一问,该怎么处理

发布时间: 2012-03-06 20:47:55 作者: rapoo

单态类一问
template <typename T> class Singleton
{
protected:
static T* ms_Singleton;

public:
Singleton( void )
{
assert( !ms_Singleton );
ms_Singleton = static_cast < T* > ( this );
}
~Singleton( void )
{ assert( ms_Singleton ); ms_Singleton = 0; }
static T& getSingleton( void )
{ assert( ms_Singleton ); return ( *ms_Singleton ); }
static T* getSingletonPtr( void )
{ return ( ms_Singleton ); }
};

//client端的代码
//Singleton的类
//Root.h
class Root:public Singleton <Root>
{
public:
void Use();
};

上面是OGRE关于单态类的实现。我想问要不要把singleton的析构函数声明为虚函数?

[解决办法]
不要。

[解决办法]
Not Do This, Singleton class is not for inhriting.

读书人网 >C++

热点推荐