gpt4 book ai didi

c++ - 全局变量和枚举之间的范围问题

转载 作者:行者123 更新时间:2023-11-28 07:33:14 25 4
gpt4 key购买 nike

#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,但是当我编译它时显示它是未定义的。为什么这里会发生什么?

最佳答案

对我来说它打印 5,除非你把枚举放在数组定义之前。然后是 3。

正如预期的那样(VS2012)。

关于c++ - 全局变量和枚举之间的范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17249787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com