C++ でオーバーロードされた関数は、ここにあるように、数値パラメーター、型、およびシーケンスによって区別できることを知っています。
ただし、次のコードを試したところ、あいまいなエラーが発生しましたが、パラメーターの 1 つが異なるため理由がわかりません (この場合、シーケンスは重要ではありません)。
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);
}