【发布时间】:2015-05-27 22:48:09
【问题描述】:
在观察另一个人的代码时,我意识到他在A类的方法中声明了一个与A类变量同名的本地int。例如:
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,在更复杂的情况下会导致什么问题?
【问题讨论】:
-
这不是错误,但可以配置为警告。 See this question.
-
那么,当你尝试它时,发生了什么?
标签: c++ class variables attributes local