C++: Initialisering af array af object’er uden default constructor

Når man i C++  har en klasse hvor constructor’en kræver et eller flere argumenter, har det tidligere været et problem at initialise sine object’er, hvis man skulle bruge et array af object’er.

Dette er blevet rettet op på med C++11, hvor man har lavet en emplace_back til vector standard containeren.

Med emplace_back kan man initialisere sine obejct’et med argumenter, hvilket er vist med nedenstående kode eksempel.

/Flemming Jahn

class Timer_c {

public:

  Timer_c(const uint timerId);

}

std::vector<Timer_c> eventTimers;

for (auto timer = 0; timer < EVENT_TIMERS_CNT; timer ++) {

    eventTimers.emplace_back(timer);

}

Leave a Reply

Your email address will not be published. Required fields are marked *