Я имел 4 класса:Вызов член добавляемых классов с множественным наследованием
- Список
- Base
- B
Мне нужно добавить класс, который расширяет работа классов 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();
}
Как я могу вызвать функциональную панель() внутри списка?
UPD
Первый список содержит объекты А и Б, но теперь есть NEWA и NEWB
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' , Это затрудняет вам вопрос. –