我的基类是具有受保护 c'tor 的单例。现在,我可以从中派生另一个类,但我无法在派生类的函数中创建该基类的实例。根据我的设计,这是预期的行为。但我想知道 C++ 标准是否正确,或者只是我的编译器特定行为?(因此,如果我将来想移植此代码,我不应该遇到问题)
class Singleton
{
protected:
Singleton() {}
public:
Singleton * GetInstance()
{
static Singleton* InstanceCreated = NULL ;
if (!InstanceCreated)
InstanceCreated = new Singleton ;
return InstanceCreated ;
}
};
class Deringlton : public Singleton
{
public:
Deringlton()
{
Singleton * pSing ;
// pSing = new Singlton ; // Cannot create object of singlton
// (Despite class is derived from singlton)
}
};