У меня есть абстрактный базовый класс в C++ и вам нужно создать массив для хранения объектов, которые являются его подклассами. Я использую указатели на подклассы, так как каждый член массива должен быть одного размера. В настоящее время я заявляю и инициализации мой массив так:Инициализация массива подклассов абстрактного базового класса в C++
BaseClass *array[];
...
array =
{
&SubClass1(...),
&SubClass2(...),
...
&SubClass3(...)
};
Это дает мне следующее, когда я пытаюсь скомпилировать:
warning: taking address of temporary
error: too many initializers for ‘BaseClass* [0]’
Что такое правильный способ сделать это?
Я пробовал это, но это дает мне «ошибку: слишком много инициализаторов для« BaseClass »[0]». – PandaConda
Я только что протестировал аналогичную вещь под g ++ 4.8 и без ошибок ... http://ideone.com/phWplC – Johan
К сожалению, я застрял в gcc 4.4.7. Неужели это не работает? – PandaConda