Объявление локальной переменной в области видимости с тем же именем, что и атрибут класса
Наблюдая за кодом другого человека, я понял, что в методе класса A он объявил локальный int с тем же именем, что и атрибут класса A. Например:
//classA.h
class A{
int Data;
void MethodA();
};
//classA.cpp
#include "classA.h"
using namespace std;
void A::MethodA(){
int Data; //local variable has same name as class attribute
Data = 4;
//Rest of Code
}
Мне показалось странным, что компилятор примет это без возврата ошибки. В приведенном выше случае, будут ли 4 назначены локальным Data или A :: Data, и какие проблемы это может вызвать в более сложных ситуациях?