перегрузка функций в С++ не работает, когда параметры различаются по типу

Я знаю, что перегруженные функции в С++ можно различать по числовым параметрам, типу и последовательности, как здесь сказано .

Однако, когда я попробовал следующий код, у меня возникла ошибка неоднозначности, но я не знаю, почему, поскольку один из параметров отличается (и в этом случае последовательность не должна иметь значения):

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

0 ответов

Другие вопросы по тегам