0

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);
}

4

0 に答える 0