[C++][STL - std::vector] Tworzenie tablicy obiektów bez domyślnego konstruktora.
Ostatnio zmodyfikowano 2015-04-07 23:49
Kopczak1995 Temat założony przez niniejszego użytkownika |
[C++][STL - std::vector] Tworzenie tablicy obiektów bez domyślnego konstruktora. » 2015-04-07 22:49:34 Witam, mam mały problem z zastosowaniem kontenera std::vector. W mojej gierce posiadam klasę, której obiekt niestety ale nie może zostać utworzony inaczej jak poprzez konstruktor z odpowiednimi parametrami. Kompilator wymusza ode mnie inicjalizację kilku parametrów z racji tego, że mają to być referencje do paru innych obiektów. No i próbuję sobie stworzyć tablicę std::vector takich obiektów i mam mały problem... Oto co próbowałem uczynić: std::vector < Enemy > enemy;
for( int i = 0; i < 10; i++ ) { Enemy enemy { arg1, arg2 }; enemy.pushback( enemy ); }
Coś takiego niby się skompilowało ale... Cóż, niektóre wartości wewnątrz obiektu Enemy nie działały mi potem prawidłowo. Proszę, powiedzcie mi jak poprawnie powinienem to zrobić :) |
|
michal11 |
» 2015-04-07 23:05:52 emlace_back() albo vector wskaźników i dynamiczna alokacja. |
|
Quirinnos |
» 2015-04-07 23:06:59 Jak już chcesz robić to w taki sposób, to: for( int i = 0; i < 10; i++ ) { enemy.push_back( Enemy( arg1, arg2 ) ); }
|
|
NopeDotAvi |
» 2015-04-07 23:10:19 @Quirinnos czemu? i tak copy constructor zostanie użyty. Lepiej użyć wskaźników już. |
|
Quirinnos |
» 2015-04-07 23:12:30 No jasne, że lepiej dać wskaźnik, a najlepiej uniq'a. Dlatego napisałem "jak już chcesz w ten sposób" Najładniej to by było dać - jak już wspomnieli - vector inteligentnych wskaźników. |
|
Kopczak1995 Temat założony przez niniejszego użytkownika |
» 2015-04-07 23:49:43 Dzięki za pomoc ale okazało się, że jednak błąd nie leży w alokacji, coś jest nie tak z moją klasą... Gdzieś po drodze biblioteka SFML gubi moje obrazki :P |
|
« 1 » |