Breymann. C++ Einführung und professionelle Programmierung
Breymann. C++ Einführung und professionelle Programmierung Breymann. C++ Einführung und professionelle Programmierung
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
- Seite 117 und 118: Üblich: make-Files oder „Projekt
- Seite 119 und 120: Beschränkung des Gültigkeitsberei
- Seite 121 und 122: 4.3.4 Übersetzungseinheit, Deklara
- Seite 123 und 124: one definition rule Jede Variable,
- Seite 125 und 126: Inhalt von Implementations-Dateien
- Seite 127 und 128: 4.3.5 Compilerdirektiven sind Anwei
- Seite 129 und 130: Makros mit #define zum Ersetzen von
- Seite 131 und 132: Eine weitere übliche Anwendung von
- Seite 133 und 134: Nur mit den Sprachelementen von C++
- Seite 135 und 136: Verifizieren logischer Annahmen mit
- Seite 137 und 138: template int kleiner(const T& a, co
- Seite 139 und 140: * Erst in der folgenden Anweisung w
- Seite 141 und 142: 4.5 inline-Funktionen inline ist ei
- Seite 143 und 144: 5. Objektorientierung 1 - Abstrakte
- Seite 145 und 146: } // ... Protokollierung Punkt einP
- Seite 147 und 148: Eigenschaften: • Der Sinn liegt d
- Seite 149 und 150: class Klassenname { public: Typ Ele
- Seite 151 und 152: Anwendung: // ort1main.cpp #include
- Seite 153 und 154: aendern() soll Änderungen der Koor
- Seite 155 und 156: 2. Deklaration und Definition inner
- Seite 157 und 158: 5.3 Initialisierung und Konstruktor
- Seite 159 und 160: 5.3.2 Allgemeine Konstruktoren Allg
- Seite 161 und 162: Initialisierung mit Listen Beispiel
- Seite 163 und 164: }; private: int xKoordinate, yKoord
- Seite 165 und 166: 5.3.3 Kopierkonstruktor engl.: copy
- Seite 167: Übergabe von Objekten an eine Funk
- Seite 171 und 172: Verhindern impliziter Typwandlungen
- Seite 173 und 174: Folgende Funktionen sollen von der
- Seite 175 und 176: Beschränkungen und Hinweise - Kür
- Seite 177 und 178: Möglichkeiten für Operationen mit
- Seite 179 und 180: void eingabe(); void ausgabe() cons
- Seite 181 und 182: 5.4.3 Implementation void rational:
- Seite 183 und 184: void rational::sub(const rational&
- Seite 185 und 186: long ggt(long x, long y) { // wird
- Seite 187 und 188: ational mult(const rational& a, con
- Seite 189 und 190: 5.6 Faustregeln zur Konstruktion vo
- Seite 191 und 192: Regeln: 1. Die geplante Anwendung b
- Seite 193 und 194: 5. Die Art der Übergabe eines Obje
- Seite 195 und 196: (a) Diese Anweisung wird von links
- Seite 197 und 198: Natürlich kann von den Empfehlunge
- Seite 199 und 200: class Beispiel { int zahl; public:
- Seite 201 und 202: 5.8 Wie kommt man zu Klassen und Ob
- Seite 203 und 204: 5.8.1 Einige Analyse-Überlegungen
- Seite 205 und 206: 6. Intermezzo: Zeiger - Zeiger und
- Seite 207 und 208: . 99 . . 10123 . Adresse Name 10122
- Seite 209 und 210: int *ip2 = &i; bewirkt: ip ip2 ❩
- Seite 211 und 212: NULL-Zeiger Eigenschaften: • Ein
- Seite 213 und 214: . Index 17 35 112 -3 1000 . 0 1 2 3
- Seite 215 und 216: Zeiger und Arrays Zeiger und Arrays
- Seite 217 und 218: sizeof funktioniert jedoch nicht be
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