Статические массивы, определенные с неопределенным размером, пустые скобки?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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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