C ++ Массив из 120 объектов с конструктором + параметрами, header- + sourcefile, без указателей, пожалуйста! - PullRequest
5 голосов
/ 13 февраля 2011

file.h:

extern objekt squares[120];

file.cpp:

objekt squares[120]= {objekt(objekt_size ,objekt_size ,-111,0)};

Как я могу инициировать все объекты одновременно, все с одинаковыми параметрами?

Ответы [ 2 ]

9 голосов
/ 13 февраля 2011

Не используйте необработанный массив (потому что все элементы будут инициализированы через конструктор по умолчанию).Используйте, например, std::vector:

std::vector<objekt> squares(120, objekt(objekt_size ,objekt_size ,-111,0));
1 голос
/ 13 февраля 2011

Вы также можете использовать препроцессор , чтобы повторить один и тот же код 120 раз.

#include <boost/preprocessor/repetition/enum.hpp>

#define TO_BE_ENUMERATED(z, n, text) text

objekt squares[120] = {
    BOOST_PP_ENUM(120, TO_BE_ENUMERATED, objekt(objekt_size ,objekt_size ,-111,0))
};
#undef TO_BE_ENUMERATED
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...