言葉だけで説明するより見せた方が簡単
class OutterBase{
protected:
virtual ItemList buildDefaultItemListForCatagory1();
class Inner{
ItemList catagory1, catagory2;
public:
void Inner(){ _initOnce(); }
private:
void _initOnce(){
/* want to be able call the virtual buildDefaultItemListForCatagory1 */
}
}
typedef Singleton<Inner> InnerClassType; //has static getInstance method to get Inner object
}
class OutterDerived: public OutterBase{
virtual ItemList buildDefaultItemListForCatagory1();
}
というわけで今の状況です。Inner::_initOnce 関数内で仮想の buildDefaultItemListForCatagory1 を呼び出せるようにしたいと考えています。これを行う方法はありますか。
それができない場合は、これを再設計する必要があります。OutterBase に Inner クラスのインスタンスを 1 つだけ持ち、それを派生クラスで使用できるようにしたいと考えています。また、仮想 buildDefault* 関数に応じて構築する必要があります。上記が達成できない場合、誰かが代替の良い解決策を提案できますか? ありがとう。