Diskuze: Co to dělá?
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 3 zpráv z 3.
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Tomu se říká operátor new s umístěním (placement new). Vytvoří to objekt třídy na adrese kterou tomu operátoru předáš. Zde na adrese určené výrazem &pool_[poolIndex_++].
je to placement new, v c++ je viacej verzii operatora new, standartne new bez parametrov alokuje pamet a nasledne zavola konstruktor, new s parametrom void* (to je ten co si ty pouzil) nealokuje pamet, ale zavola konstruktor pre dany parameter. Existuje este napr operator new ktory prebera parameter std::nothrow, takyto operator nevyhodi vynimku pri alokacii...
Co sa tyka toho kodu co si sem dal, je tam vela moznych chyb, vola sa viacnasobne konstruktor, pouzit vector ako memory pool tiez nieje dobry napad lebo vector sa moze realokovat na ine miesto v pameti...
Zobrazeno 3 zpráv z 3.