class base{
static base* m_selfInstance;
public:
static base* GetInstance();
virtual void abc() = 0;
};
class der:public base{
public:
void abc(){cout << "Derived...\n";}
};
base* base::m_selfInstance = NULL;
base* base::GetInstance()
{
if(m_selfInstance == NULL)
{
/*Throws error here and it's natural, because it's violates C++ standard*/
m_selfInstance = new base();
}
return m_selfInstance;
}
int main()
{
base *b = base::GetInstance();
//b->abc();
system("pause");
return 0;
}
この場合、シングルトンと純粋仮想関数を一緒に処理する方法。私がm_selfInstance = new der();
物事をうまく機能させるようにすれば。しかし、実際の問題は、more derived classes
likeがder_1
ありder_2
、その時点でインスタンスがorm_selfInstance = new der();
の代わりになる場合に発生します。これを進める方法を教えてください。new der_1()
new der_2()