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 keinexplicit
verwendet 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.