单态类一问
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.