Следующий фрагмент создает ошибку "ambigious call to foo" во время компиляции, и я хотел бы знать, есть ли какой-либо путь вокруг этой проблемы без полной квалификации вызова для foo:
#include <iostream>
struct Base1{
void foo(int){
}
};
struct Base2{
void foo(float){
}
};
struct Derived : public Base1, public Base2{
};
int main(){
Derived d;
d.foo(5);
std::cin.get();
return 0;
}
Итак, вопрос в том, как гласит название. Идеи? Я имею в виду, что следующее работает безупречно:
#include <iostream>
struct Base{
void foo(int){
}
};
struct Derived : public Base{
void foo(float){
}
};
int main(){
Derived d;
d.foo(5);
std::cin.get();
return 0;
}