Breymann. C++ Einführung und professionelle Programmierung

Breymann. C++ Einführung und professionelle Programmierung Breymann. C++ Einführung und professionelle Programmierung

vred.bioinf.uni.sb.de
von vred.bioinf.uni.sb.de Mehr von diesem Publisher
17.11.2014 Aufrufe

Umgehung der Typprüfung! string wo("20,400"); Ort hier = Ortsverschiebung(wo, 10, -90); // besser: explizite Angabe der Typumwandlung (s.u.) Ort dort = Ortsverschiebung(Ort(wo), 10, -90); Der Compiler erzeugt ein für uns unsichtbares Hilfsobjekt __temp: // Erzeugen eines temporären Ort-Objekts: Ort __temp(wo); // Typumwandlungskonstruktor Ort hier = Ortsverschiebung(__temp, 10, -90); // Hier kann das temporäre Objekt zerstört werden. Breymann C++, c○ Hanser Verlag München Inhalt ◭◭ ◭ ◮ ◮◮ 170 zurück Ende

Verhindern impliziter Typwandlungen mit explicit: class Ort { public: explicit Ort(const string& str) // ... Rest wie vorher }; // ..... Ort O1; string wo("10, 200"); O1 = wo; // jetzt ein Fehler! O1 = Ort(wo); // erlaubte explizite Typumwandlung Breymann C++, c○ Hanser Verlag München Inhalt ◭◭ ◭ ◮ ◮◮ 171 zurück Ende

Verhindern impliziter Typwandlungen mit explicit:<br />

class Ort {<br />

public:<br />

explicit Ort(const string& str)<br />

// ... Rest wie vorher<br />

};<br />

// .....<br />

Ort O1;<br />

string wo("10, 200");<br />

O1 = wo;<br />

// jetzt ein Fehler!<br />

O1 = Ort(wo); // erlaubte explizite Typumwandlung<br />

<strong>Breymann</strong> <strong>C++</strong>, c○ Hanser Verlag München<br />

Inhalt ◭◭ ◭ ◮ ◮◮ 171 zurück Ende

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!