Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Dynamiczna alokacji paru elementów obiektu z konstruktorem bez domyślnych parametrów

Ostatnio zmodyfikowano 2017-01-31 13:04
Autor Wiadomość
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:

C/C++
class A
{
public:
    A( int a, char * c )
    {
        //coś tutaj
    }
}

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:
C/C++
A * nowy = new A( 3, "NOWY" )[ 5 ];

A * nowy = new A[ 5 ]( 3, "NOWY" );


A * nowy = new A[ 5,( 3, "NOWY" ) ];
P-157161
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.
C/C++
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:
C/C++
std::vector < A > tab( 5, A( 3, "NOWY" ) );
P-157162
« 1 »
  Strona 1 z 1