我知道 C++ 中的重载函数可以通过这里所说的数字参数、类型和序列来区分。
但是,当我尝试以下代码时,我遇到了一个模棱两可的错误,但我不知道为什么,因为其中一个参数不同(在这种情况下,顺序应该无关紧要):
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);
}