#include <iostream>
const int SIZE = 5;
struct tester
{
int array[SIZE];
enum
{
SIZE = 3
};
void size()
{
std::cout << sizeof(array) / sizeof(int);
}
};
int main(int argc, char** argv)
{
tester t;
t.size();
return 0;
}
据我们所知
在类中任何点定义的名称都在类的所有成员函数的范围内。因此enum
SIZE 在函数大小的范围内并隐藏了全局变量 SIZE。所以我的数组大小应该打印 3 而不是 5,但是当我编译它时显示它是未定义的。为什么这里发生了什么?