verschiedene konstruktoren aufrufen
-
Ich habe aber die Vorgabe das ganze mit Arrays zu machen.
Gibt es da irgendeine Möglichkeit?
-
int *myarray = new int[10]; //mache was mit dem array delete[] myarray;
-
Eine Initialisierungsliste in C++0x.
-
HighLigerBiMBam schrieb:
int *myarray = new int[10]; delete[] myarray;Das hilft herzlich wenig, wenn es darum geht, Konstruktoren der Elemente aufzurufen.
314159265358979 schrieb:
Eine Initialisierungsliste in C++0x.
Initialisierungslisten für Arrays gibts schon in C++98.
Net netarray[3] = {Net(4), Net(7), Net(2)};
-
Edit: Hier stand Schwachsinn, Problem prinzipiell falsch verstanden.
-
Nexus schrieb:
HighLigerBiMBam schrieb:
int *myarray = new int[10]; delete[] myarray;Das hilft herzlich wenig, wenn es darum geht, Konstruktoren der Elemente aufzurufen.
314159265358979 schrieb:
Eine Initialisierungsliste in C++0x.
Initialisierungslisten für Arrays gibts schon in C++98.
Net netarray[3] = {Net(4), Net(7), Net(2)};Hallo Nexus.
Der Aufruf der Konstruktoren könnte prinzipiell so klappen. Ist das auch möglich wenn die Anzahl der Arrayelemente Variabel istint arrayelemente(z.B in einer for-schleife?)?
-
cuba1 schrieb:
Hallo Nexus.
Der Aufruf der Konstruktoren könnte prinzipiell so klappen. Ist das auch möglich wenn die Anzahl der Arrayelemente Variabel istNein, da die Anzahl der Array-Elemente in C++ nicht variabel sein kann.
Aber das ist ja nur einer der Gründe für STL-Container...
-
Hier passt dann aber die C++0x initializer list

-
314159265358979 schrieb:
Hier passt dann aber die C++0x initializer list

Wenn man wegen der dynamischen Grösse auf STL-Container umsteigt – nein

-
Da hast du natürlich Recht

-
Nexus schrieb:
Initialisierungslisten für Arrays gibts schon in C++98.
Net netarray[3] = {Net(4), Net(7), Net(2)};
Wenn der Konstruktor "implizit" ist (also keinexplicitverwendet wurde), dann müsste es sogar mitNet netarray[3] = {4, 7, 2};funktionieren.
Bzgl "Dynamik": STL-Container nehmen. Die können ihre größe zur Laufzeit anpassen.