перегрузка функций в С++ не работает, когда параметры различаются по типу
Я знаю, что перегруженные функции в С++ можно различать по числовым параметрам, типу и последовательности, как здесь сказано .
Однако, когда я попробовал следующий код, у меня возникла ошибка неоднозначности, но я не знаю, почему, поскольку один из параметров отличается (и в этом случае последовательность не должна иметь значения):
class MyClass
{
public:
MyClass() {}
void myMethod(char x, int y){
cout<<"int"<<endl;
}
void myMethod(char x, float y){ //if the arguments are swapped, the function is not ambiguous anymore
cout<<"float"<<endl;
}
};
int main()
{
MyClass obj;
obj.myMethod('x', 1);
obj.myMethod('x', 0.5);
}