0
的構件我有4類:調用添加的類多重繼承
- 列表
- 基地
- 甲
- 乙
我需要添加其延伸的一個類A和B級的工作 - L3。 NewA和NewB類實現L3中聲明的函數。
class Base
{
virtual void foo() = 0;
}
class A: virtual public Base
{
void foo();
}
class B: virtual public Base
{
void foo();
}
class L3: virtual public Base
{
virtual void bar() = 0;
}
class NewA: public A, virtual public L3
{
void bar();
}
class NewB: public B, virtual public L3
{
void bar();
}
如何在List中調用函數bar()?
UPD
第一個列表包含對象A和B,但現在有紐瓦和福利局
class List
{
public:
void append(Base *sh);
void next();
void setBegin();
Base* curr();
void out(std::ofstream &ofst);
protected:
std::list <Base*> container;
std::list <Base*>::iterator iter;
}
void List:: next()
{
iter++;
}
void List:: setBegin()
{
iter = container.begin();
}
void List:: append(Base* sh)
{
container.push_back(sh);
}
Base* List::curr()
{
return *iter;
}
void List::out(ofstream &ofst)
{
setBegin();
for (int i=0; i<container.size(); i++)
{
cout<<"Out: "<< endl; // I need to call bar() at this line
next();
}
}
你沒有表現出類'List' 。這使你的問題有點難以回答。 –