Функция членов 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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