比只用文字解释更容易展示
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 类的实例,并将它提供给任何派生类。我还需要根据虚拟 buildDefault* 函数构建它。如果上述无法实现,有人可以提出替代的好解决方案吗?谢谢。