1
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 classeslikeがder_1ありder_2、その時点でインスタンスがorm_selfInstance = new der();の代わりになる場合に発生します。これを進める方法を教えてください。new der_1()new der_2()

4

0 に答える 0