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

5.3.4 Typumwandlungskonstruktor Typumwandlungskonstruktor = Spezialfall des allgemeinen Konstruktors. Beispiel: Wandlung von Zeichenketten in Ortsangaben #include #include class Ort { public: // Typumwandlungskonstruktor. Format: 2 Folgen von Ziffern Ort(const string& str) { unsigned int pos = 0; // Zifferposition for(int j = 0; j < 2; ++j) { // jede Koordinate while(pos < str.size()) { } if(isdigit(str.at(pos))) // Ziffer? break; else ++pos; // erste Ziffer suchen assert(pos < str.size()); // Ziffer gefunden? Breymann C++, c○ Hanser Verlag München Inhalt ◭◭ ◭ ◮ ◮◮ 168 zurück Ende

Zahl bilden int Koordinate = 0; while(pos < str.size() && isdigit(str.at(pos))) { Koordinate = 10*Koordinate+str.at(pos)-’0’; ++pos; } switch(j) { case 0: xKoordinate = Koordinate; break; case 1: yKoordinate = Koordinate; } } } // ... Rest wie vorher Anwendung: Ort nochEinOrt(string("21 99")); // mögliches Format anzeigen(nochEinOrt); cout

5.3.4 Typumwandlungskonstruktor<br />

Typumwandlungskonstruktor = Spezialfall des allgemeinen Konstruktors.<br />

Beispiel: Wandlung von Zeichenketten in Ortsangaben<br />

#include<br />

#include<br />

class Ort {<br />

public:<br />

// Typumwandlungskonstruktor. Format: 2 Folgen von Ziffern<br />

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

unsigned int pos = 0;<br />

// Zifferposition<br />

for(int j = 0; j < 2; ++j) { // jede Koordinate<br />

while(pos < str.size()) {<br />

}<br />

if(isdigit(str.at(pos))) // Ziffer?<br />

break;<br />

else ++pos;<br />

// erste Ziffer suchen<br />

assert(pos < str.size()); // Ziffer gef<strong>und</strong>en?<br />

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

Inhalt ◭◭ ◭ ◮ ◮◮ 168 zurück Ende

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!