• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ dynamiczna alokacja tablicy z konstruktorem przeciążonym

0 głosów
206 wizyt
pytanie zadane 25 marca 2020 w C i C++ przez PgK Obywatel (1,380 p.)

Witam,

Jak dynamicznie zaalokować tablicę obiektów z wykorzystaniem własnego konstruktora? Chciałbym utworzyć dynamicznie tablice z konstrukturem który jako argument bierze int, int, int.

 

PSEUDOKOD!!!!
// naglowek klasy
Class Klasa
{
         Klasa();
         Klasa(int, int int);

}


// inicjalizacja
Klasa* k1 = new Klasa[100];

2 odpowiedzi

0 głosów
odpowiedź 25 marca 2020 przez tkz Nałogowiec (41,900 p.)

Użyj czegoś, na czym się nie sparzysz. 

std::vector<Klasa> klasa;

for(int i = 0; i < 20; i++)
{
    klasa.emplace_back(Klasa(1,2,3));
}

 

komentarz 25 marca 2020 przez j23 Mędrzec (176,760 p.)

Po co metoda emplace_back, skoro używasz jej jak push_back?

Tak to ma sens:

klasa.emplace_back(1, 2, 3);

 

komentarz 25 marca 2020 przez tkz Nałogowiec (41,900 p.)
Moje niedopatrzenie.
komentarz 25 marca 2020 przez mokrowski VIP (148,260 p.)
W 2 linii, dodaj jeszcze reserve(20). Przecież wiesz ile ma być tych elementów. Unikniesz alokacji/realokacji/kopiowania/przenoszenia obiektów.
komentarz 25 marca 2020 przez tkz Nałogowiec (41,900 p.)
Doskonale zdaje sobie z tego sprawę. Wycinek nie ma celu pokazać jak to powinno wyglądać, a jak może.
0 głosów
odpowiedź 25 marca 2020 przez tangarr VIP (140,280 p.)

Wydaje mi się, że jest to możliwe tylko z użyciem list inicjalizacyjncyh

Klasa* k1 = new Klasa[100] { {1, 2, 3}, 
                             {4, 5, 6}, 
                             {7, 8, 9}};

Ale w ten sposób tylko 3 pierwsze elementy tablicy zostaną utworzone przy pomocy własnego kontruktora, reszta elementów użyje konstruktora domyślnego;

Podobne pytania

0 głosów
1 odpowiedź 71 wizyt
0 głosów
2 odpowiedzi 537 wizyt
pytanie zadane 3 lipca 2018 w C i C++ przez qlucha Obywatel (1,790 p.)
0 głosów
1 odpowiedź 160 wizyt

88,677 zapytań

137,288 odpowiedzi

306,652 komentarzy

58,873 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...