Функция членов C ++ скрывает глобальную функциюC++

Программы на C++. Форум разработчиков
Anonymous
Функция членов C ++ скрывает глобальную функцию

Сообщение Anonymous »

Этот фрагмент кода не компилируется: < /p>

Код: Выделить всё

struct M {
int i;
int j;
};

void f(M& m) {
m.i++;
}

struct N {
M m;
void f(int i) {
f(m); // compilation error
}
};
< /code>
clang говорит: < /p>
No viable conversion from 'M' to 'int'
кажется, что моя функция -член скрывает глобальную функцию.
Я изменил строку ошибки на :: f (m) , чтобы помочь разрешению имени, но все еще не сбои. Означает ли это, что в функции члена C ++ не может вызовать функцию перегрузки глобальной перегрузки с тем же именем, но с другим списком параметров? < /P>
Как это исправить?
Спасибо! < /P>

Подробнее здесь: https://stackoverflow.com/questions/735 ... l-function

Вернуться в «C++»