Нужен Help по классам и соответствию стандарту С++
От: _Punisher_ Россия  
Дата: 13.05.04 14:07
Оценка:
Есть класс:

class XFig {
public:
int i;
virtual ~XFig();
};

int cout();

int foo(){
XFig *mass[coun()];
};

output:
foo.cpp(10): error: unsupported underlying vla type (non-POD class type)
XFig* countWidgets[count()];
^
Нужны коментария по поводу ошибки. Правильно ли себя ведет компилятор по отношению к стандарту.
Re: Нужен Help по классам и соответствию стандарту С++
От: Кодт Россия  
Дата: 13.05.04 14:10
Оценка:
Здравствуйте, _Punisher_, Вы писали:
_P_>Есть класс:

_P_>class XFig {                                                                                                                                
_P_>public:                                                                                                                              
_P_>    int i;  
_P_>    virtual ~XFig(); 
_P_>};
                                                                                                                        
_P_>int cout();
 
_P_>int foo(){                                                                                                                                  
_P_>    XFig *mass[coun()];
_P_>};

_P_>output:
_P_> foo.cpp(10): error: unsupported underlying vla type (non-POD class type)
_P_> XFig* countWidgets[count()];
_P_> ^
_P_>Нужны коментария по поводу ошибки. Правильно ли себя ведет компилятор по отношению к стандарту.

Ну и всё правильно.
Нельзя разместить на стеке или в статике массив неконстантной длины. В куче — на здоровье.
Перекуём баги на фичи!
Re: Нужен Help по классам и соответствию стандарту С++
От: Vamp Россия  
Дата: 13.05.04 14:11
Оценка:
Я что-то вообще не понимаю. Как это ты собираешся объявлять массив неизвестной на этапе компиляции размерности?
Да здравствует мыло душистое и веревка пушистая.
Re: Нужен Help по классам и соответствию стандарту С++
От: Lorenzo_LAMAS  
Дата: 13.05.04 14:25
Оценка:
В основном тебе уже все сказали, размер массива задается константным выражением. Но тут у тебя странное сообщение — ты чем компилил-то? vla — это не из С++, это из С.
Of course, the code must be complete enough to compile and link.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.