Konstruktor aus Konstruktor aufrufen
-
Wie kann ich aus dem zweiten Konstruktor den ersten aufrufen?
class myclass { myclass(int); //Erster Konstruktor myclass(std::string); //Zweiter Konstruktor }; myclass::myclass(std::string Parameter) { this->myclass( atoi(Parameter[0]) ); //(Geht nicht) } int main(void) { myclass myobject("1"); ... }
-
_GORDON schrieb:
Wie kann ich aus dem zweiten Konstruktor den ersten aufrufen?
Für das Objekt, das gerade konstruiert wird: gar nicht.
-
Das heisst ich MUSS ganz einfach den Quelltext kopieren?-Bist du dir sicher?
-
Ich könnte es so machen, merke ich jetzt gerade:
class myclass { konstruktor(int); //"Hilfskonstruktor" myclass(int); //Erster Konstruktor myclass(std::string); //Zweiter Konstruktor }; myclass::myclass(std::string Parameter) { this->konstruktor( atoi(Parameter[0]) ); //(Geht nicht) } myclass::myclass(int Parameter) { this->konstruktor( Parameter ); //(Geht nicht) } int main(void) { myclass myobject("1"); ... }
-
Hier hilft wohl nur eine private Initialisierungsfunktion. Soll glaub ich im neuen Standard geändert werden.
Was machst du eigentlich wenn atoi nicht funktioniert?Gruß
Don06
-
Das ist nur ein Beispiel oben, konkret geht es um eine Klasse für die serielle Schnittstelle und sich etwas mit C++ anzufreunden. (Ich bin Elektroniker-Lehrling und deshalb eher mit C vertraut, weil das halt auf Mikrocontrocontrollern so üblich ist.)
-
du bist da grad auf eine unzulänglichkeit von c++ gestossen
die sprache unterstützt das rufen eines anderen konstruktors aus einem konstruktor heraus schlicht nicht.kopieren musst du trotzdem nichts. lager die initialisierung mit einem int einfach in eine private methode aus und ruf diese aus beiden konstruktoren.