kostenloser Webspace werbefrei: lima-city


Konstruktor in Konstruktor aufrufen

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    tangoal

    Kostenloser Webspace von tangoal

    tangoal hat kostenlosen Webspace.

    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)
    {
    }

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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?
  4. Autor dieses Themas

    tangoal

    Kostenloser Webspace von tangoal

    tangoal hat kostenlosen Webspace.

    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...
  5. Ich weiß es jetzt nicht, kann es auch zur Zeit nciht nachprüfen, aber kann man nci9ht einfach ein beliebig großes array an den Konstruktor übergeben? für Jeden Datentyp ein array, dann kann man auch leere Arrays übergeben... ich war noch nie so ein fan von mehreren Konstruktoren pro Klasse...
  6. 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 ?!
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!