Статические массивы, определенные с неопределенным размером, пустые скобки?C++

Программы на C++. Форум разработчиков
Anonymous
Статические массивы, определенные с неопределенным размером, пустые скобки?

Сообщение Anonymous »

Для фрагмента кода C++ ниже:

Код: Выделить всё

class Foo {
int a[]; // no error
};

int a[];     // error: storage size of 'a' isn't known

void bar() {
int a[]; // error: storage size of 'a' isn't known
}
почему переменная-член тоже не вызывает ошибку? и каково значение этой переменной-члена?

Я использую gcc версии 3.4.5 (специальная mingw-vista) через CodeBlocks 8.02.

В Visual Studio Express 2008 — оптимизирующий компилятор Microsoft(R) C/C++ 15.00.30729.01 для 80x86 я получил следующее сообщения:

Код: Выделить всё

class Foo {
int a[]; // warning C4200: nonstandard extension used : zero-sized array in struct/union - Cannot generate copy-ctor or copy-assignment operator when UDT contains a zero-sized array
};

int a[];

void bar() {
int a[]; // error C2133: 'a' : unknown size
}
Это тоже требует некоторых объяснений.

Подробнее здесь: https://stackoverflow.com/questions/271 ... y-brackets

Вернуться в «C++»