Klasse String??
-
operator void schrieb:
Eher <cstring>.
<string> liefert auch strlen u.ä. (ok, wahrscheinlich inkludiert es <cstring>).
-
Ich hätt da mal noch ne Frage und zwar wieso kann man hier an die Methode
assign einen String übergeben wenn die Methode einen Parameter vom Typ
Zeichen verlangt???ich hab noch ein bissen rumprobiert und habs dann auf diese Weiße geschafft:
z.B:
Zeichen obj("Hallo");
Zeichen obj2("Hallo du da");
obj.assign(obj2);Wo ist jetzt hier der Unterschied???
-
char* kann in ein Object der Klasse Zeichen umgewandelt werden.
Zeichen hat nämlich einen Konstruktor, der char* entgegennimmt.Und diese Umwandlung macht der Compiler lautlos.
-
Ist das nur bei Strings so oder gibt da noch mehr solche fälle??
Oder ist das allgemein so wenn man einen Parameter der eigenen Klasse erwartet??
-
dieses assign kenn ich doch aus ner frühen auflage vom breymann! es kacket bei x.assign(x) ab, wenn ich mich recht erinnere.
-
Wie meinst das jetzt??
ich hab das beispiel aus dem c/c++ Kompendium von Dirk Louis, wenn du darauf hinaus willst....
-
Guanin schrieb:
Ist das nur bei Strings so oder gibt da noch mehr solche fälle??
Oder ist das allgemein so wenn man einen Parameter der eigenen Klasse erwartet??es gibt eine umwandlung.
da Zeichen ja einen ctor hat, der einen char* erwartet, kannst du mit hilfes dieses Ctor einen char* in ein Zeichen umwandeln. und genaus das geschieht.
z.assign("Hallo");
ist somit das gleiche wie
z.assign(Zeichen("Hallo"));
da "Hallo" in ein Zeichen automatisch umgewandelt werden kann.
-
Ok wenn das so ist bin ich ja beruigt aber was soll ein ctor sein??
-
Guanin @shade schrieb:
Ok wenn das so ist bin ich ja beruigt aber was soll ein ctor sein??
ctor ist die abkürzung für Constructor, was auf deutsch ja Konstruktor heisst
-
Und falls du nicht willst, das solche Konvertierungen impliziet von statten gehen musst du dem Konstruktor das Attribut explicit geben.