0

我知道 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);
}

4

0 回答 0