Если функция члена класса C++ обращается к имени переменной, которое перегружено с помощью определений как в качестве переменной-члена класса, так и переменной в глобальной области определения функции-члена, которая будет фактически функцией-членом доступ? Сценарий таков:C++ shadowing variable name
SomeClass.h:
class SomeClass
{
int Num;
void OperateOnNum();
};
SomeClass.cpp:
#include "SomeClass.h"
int Num;
void SomeClass::OperateOnNum()
{
Num = 0;
}
Какой Num будет OperateOnNum работать дальше? Ни Microsoft Visual Studio 2013, ни GCC (версия: gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2) выдает предупреждение.
FYI, который затеняет не перегружает. Перегрузка имеет несколько функций с тем же именем, но с разными параметрами. – Borgleader
Тот, который находится в ближайшей области, то есть член. – molbdnilo
Перегрузка - http://www.tutorialspoint.com/cplusplus/cpp_overloading.htm –