Klassen Constructor überladen?
-
LOL MY FAIL!!!
-
Du schreibst es einfach hin!?

-
schonmal probiert???
-
Klar, geht (solang der Konstruktor nicht explicit ist).
-
Was soll
explicitdamit zu tun haben?
-
Nathan schrieb:
Klar, geht (solang der Konstruktor nicht explicit ist).
explicit hat eine andere Funktion:
class Foo { public: Foo( int a ) : bar(a) {} private: int bar; }; void DoIt(Foo a) {} int main() { DoIt(10); }Dabei wird 10 implizit in eine Objekt des Typs "Foo" verwandelt und 10 als Parameter übergeben.
Schreibst du jetzt explicit vor den Konstruktor, geht das nicht mehr und du musst die Funktion so aufrufen:DoIt(Foo(10));
-
Scorcher24 schrieb:
Nathan schrieb:
Klar, geht (solang der Konstruktor nicht explicit ist).
...
Ja, explicit behandelt Konversionen.
Aber es ist auch eine Konversion, wenn man einen expliciten Konstruktro so aufruft wie im Beispiel des TE, nämlich von const char* zu mystring oder was das war. Mit explicit geht das nicht und man muss () verwenden: http://ideone.com/J3QM35
-
Ah.
Wusste nicht dass dein Beitrag sich auf das bezog was der OP wegeditiert hat bevor ich den Thread aufgemacht habe...
-
Ich hab den Original Post auch nicht gesehen, ich wollte nur mal was schlaues posten...
