Konstruktor in Konstruktor aufrufen
lima-city → Forum → Programmiersprachen → C/C++ und D
array
aufruf
bauen
beispiel
bequemlichkeit
code
entstehen
ergebnis
fan
fertiges objekt
krieg
machen
methode
objekt
parameter
prinzipiell wissen
realisieren
sinn
unterscheiden
wirkliche funktion
-
Hallo,
irgendwie kriege ich das nicht gebacken oder es geht einfach nicht in C++.
In Java gibt es ja die Möglichkeit innerhalb eines Klassenkonstruktors einen weiteren
Klassenkonstruktor aufzurufen. Wie macht man sowas in C++?
ClassA::ClassA(int a1, int a2, int a3, int a4, int a5) { ClassA(a1,a2,a3); this->a4 = a4; this->a5 = a5; } ClassA::ClassA(int a1, int a2, int a3) { this->a1 = a1; this->a2 = a2; this->a3 = a3; }
Ich meine nicht den Aufruf eines vererbten Konstruktors, das würde ja so gehen:
ClassA::ClassA(int a1, int a2, int a3) : BasisClassA(a1,a2,a3) { }
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also soweit mir bekannt geht das in C++ nicht, da der Konstruktor ja sozusagen schon ein fertiges Objekt zurückliefert und du damit schon die Initialisierung fertig hättest.
Wenn man die gleichen Werte in verschiedenen Konstruktoren merhfach belegt, verwendet man deshalb meistens eine private Hilfsfunktion.
In deinem Fall könnte das ganze allerdings auch mit optionalen Parametern gehen oder? -
Ja, in diesem Beispiel könnte man es mit optionalen Parametern bewerkstelligen, dann hätte man gleich alle Variablen initialisiert.
Ich wollte es auch nur prinzipiell wissen ob das in C++ geht. Hatte mich mal gewundert, dass ich es nicht hinkriege und es durch nen anderen Aufruf implementiert habe (quasi mit Hilfsfunktionen).
Ok, dass kann natürlich sein, dass der Konstruktor in C++ keine wirkliche Funktion in dem Sinne ist, sondern nur für die Objekterstellung. Hat man dann aus Gründen der Bequemlichkeit in Java wohl etwas umdefiniert, sodass man keine Hilfsfunktionen braucht... -
grundsätzlich muss aus einem konstruktor immer das gleiche klassenobjekt entstehen. wenn du also 2 verschiedene konstruktoren bauen willst, muss das ergebnis trotzdem das gleiche sein. die konstruktoren unterscheiden sich dann (wie alle überladenen methoden) über die parameterliste...(ich gehe davon aus, dass du das sowieso weißt :-) )
die variante die du möchtest ist dann ja wirklich nur über verschiedene zusatzfunktionen zu realisieren...wobei da wieder fraglich ist, ob das sinnvoll funktioniert, weil das objekt wird ja erst noch erstellt - und da dann gleich auf seine methoden zuzugreifen...? kommt mir komisch vor....sollte man vorher mal testen ?! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage