关于一个类似Singleton的设计的一个问题
asin 2007-06-05 03:00:35 现在有一个模版:
template <typename T> class Templatetest
{
protected:
static T* ms_Instance;
public:
Templatetest( void )
{ ms_Instance = static_cast< T* >( this ); }
……
};
然后在一个dll中如此声明一个类:
class MY_EXPORT_API mytest : public Templatetest<mytest>
然后在一个程序中调用此类
mytest* ptest = new mytest;
会出现一个很奇怪的现象:
在运行到ms_Instance = static_cast< T* >( this );的时候ms_Instance会是一个正确的值。但是当运行完mytest* ptest = new mytest;后,观察ptest的值会发现ptest中的ms_Instance为空
请问:为什么会有这样的现象呢?