Объявление локальной переменной в области видимости с тем же именем, что и атрибут класса

Наблюдая за кодом другого человека, я понял, что в методе класса 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, и какие проблемы это может вызвать в более сложных ситуациях?

Ответы на вопрос(1)

Ваш ответ на вопрос