Dynamiczna alokacji paru elementów obiektu z konstruktorem bez domyślnych parametrów
Ostatnio zmodyfikowano 2017-01-31 13:04
Warmix Temat założony przez niniejszego użytkownika |
Dynamiczna alokacji paru elementów obiektu z konstruktorem bez domyślnych parametrów » 2017-01-31 12:25:05 Klasa: class A { public: A( int a, char * c ) { } } Chciałbym teraz w mainie zaalokować pamięć dla 5 elementów klasy A W jaki sposób mogę to zrobić, gdyż nie mogę znaleźć rozwiązania, gdy muszę podać parametry. Próbowałem tak, niestety nie działa żaden sposób: A * nowy = new A( 3, "NOWY" )[ 5 ];
A * nowy = new A[ 5 ]( 3, "NOWY" );
A * nowy = new A[ 5,( 3, "NOWY" ) ]; |
|
michal11 |
» 2017-01-31 13:04:08 Nie da się, klasa musi mieć konstruktor domyślny aby można było zrobić dynamiczną tablicę jej elementów. Możesz skorzystać z std::vector i emplace_back. std::vector < A > tab;
tab.emplace_back( 1, "t1" ); tab.emplace_back( 2, "t2" ); tab.emplace_back( 3, "t3" );
albo jeżeli chcesz stworzyć tablicę piecu takich samych elementów to wystarczy to zrobić w konstruktorze: std::vector < A > tab( 5, A( 3, "NOWY" ) );
|
|
« 1 » |