Следующий фрагмент кода вызывает ошибку "неоднозначный вызов 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;
}