#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, но когда я компилирую его, он показывается, что он не определен. Почему здесь происходит?
Вы упомянули функцию foo, но в вашем коде нет такого. Прояснить? –
Как вы хотите, чтобы массив был 3, если перечисление появилось после объявления? ЗАКАЗАТЬ ВОПРОСЫ –
@JohnZwinck отредактирован !! – user2416871