Breymann. C++ Einführung und professionelle Programmierung
Breymann. C++ Einführung und professionelle Programmierung Breymann. C++ Einführung und professionelle Programmierung
7.1 Eine String-Klasse Übungsbeispiel // einfache String-Klasse. Erste, nicht vollständige Version #ifndef mstring_h #define mstring_h #include // size_t #include class mstring { public: mstring(); mstring(const char *); mstring(const mstring&); ~mstring(); mstring& assign(const mstring&); mstring& assign(const char *); // Standardkonstruktor // allg. Konstruktor // Kopierkonstruktor // Destruktor // Zuweisung eines mstring // Zuweisung eines char* Breymann C++, c○ Hanser Verlag München Inhalt ◭◭ ◭ ◮ ◮◮ 268 zurück Ende
const char& at(std::size_t position) const; // Zeichen holen char& at(std::size_t position); // Zeichen holen, // die Referenz erlaubt Ändern des Zeichens std::size_t length() const { return len;} // = Anzahl der Zeichen const char* c_str() const { return start;} // C-String zurückgeben friend void anzeigen(std::ostream&, const mstring&); // siehe Text private: char *start; // Zeiger auf den Anfang size_t len; // Länge }; void anzeigen(std::ostream&, const mstring&);// s.u. #endif // mstring_h, Rest siehe Buch Kap. 7.1 Breymann C++, c○ Hanser Verlag München Inhalt ◭◭ ◭ ◮ ◮◮ 269 zurück Ende
- Seite 217 und 218: sizeof funktioniert jedoch nicht be
- Seite 219 und 220: 6.3 C-Zeichenketten C-Zeichenkette
- Seite 221 und 222: Vordefinierte Funktionen: Header #
- Seite 223 und 224: char-Arrays // Definition und Initi
- Seite 225 und 226: Beispiele: Schleifen mit Strings St
- Seite 227 und 228: Strings kopieren char* original = "
- Seite 229 und 230: 6.4 Dynamische Datenobjekte new: Er
- Seite 231 und 232: Dynamisch erzeugte Struktur Erzeugu
- Seite 233 und 234: 6.4.1 Freigeben dynamischer Objekte
- Seite 235 und 236: • Mit new erzeugte Objekte unterl
- Seite 237 und 238: 6.5 Mehrdimensionale C-Arrays 6.5.1
- Seite 239 und 240: Arrays als Funktionsparameter C-Arr
- Seite 241 und 242: void Tabellenausgabe2D(int (*T)[3],
- Seite 243 und 244: Funktion für statische zwei-dimens
- Seite 245 und 246: Aufgaben 6.1 Die Äquivalenz von *(
- Seite 247 und 248: 6.5.2 Dynamisch erzeugte mehrdimens
- Seite 249 und 250: Eine dreidimensionale Matrix ist ei
- Seite 251 und 252: Feld von Zeigern auf Zeilen anlegen
- Seite 253 und 254: 6.6 Binäre Ein-/Ausgabe = unformat
- Seite 255 und 256: Lesen einer Datei double.dat mit do
- Seite 257 und 258: void upcase(char* s) { // In der AS
- Seite 259 und 260: 6.7.2 Gefahren bei der Rückgabe vo
- Seite 261 und 262: int main() { int a = 1700, b = 1000
- Seite 263 und 264: #include using namespace std; #incl
- Seite 265 und 266: 6.9 this-Zeiger • this ist ein Sc
- Seite 267: 7. Objektorientierung 2 - eine Stri
- Seite 271 und 272: 7.1.1 friend-Funktionen Optionen f
- Seite 273 und 274: 3. friend-Funktion Falls es aus Lau
- Seite 275 und 276: • Die static-Funktion Anzahl() so
- Seite 277 und 278: Implementation der Klasse nummerier
- Seite 279 und 280: Der Kopierkonstruktor hat hier eine
- Seite 281 und 282: Der Destruktor vermerkt, dass es nu
- Seite 283 und 284: Anfang eines neuen Blocks { nummeri
- Seite 285 und 286: 7.2.1 Klassenspezifische Konstante
- Seite 287 und 288: template class simpleStack { publi
- Seite 289 und 290: • Der Datentyp T steht für einen
- Seite 291 und 292: cout
- Seite 293 und 294: 7.3.2 Stack mit statisch festgelegt
- Seite 295 und 296: Nur die Deklarationen in einem Anwe
- Seite 297 und 298: 8. Vererbung • Eigenschaften, die
- Seite 299 und 300: Die Unterklasse erbt von der Oberkl
- Seite 301 und 302: Jedes Objekt ObjA vom Typ A (=abgel
- Seite 303 und 304: Klasse GraphObj #ifndef graphobj_h
- Seite 305 und 306: Die Entfernung zwischen 2 GraphObj-
- Seite 307 und 308: 8.1 Vererbung und Initialisierung I
- Seite 309 und 310: Vererbung von Zugriffsrechten Regel
- Seite 311 und 312: Oberklasse wird mit der Zugriffsken
- Seite 313 und 314: 8.3 Code-Wiederverwendung In den ab
- Seite 315 und 316: 8.4 Überschreiben von Funktionen i
- Seite 317 und 318: Am Beispiel der Flächenberechnung
7.1 Eine String-Klasse<br />
Übungsbeispiel<br />
// einfache String-Klasse. Erste, nicht vollständige Version<br />
#ifndef mstring_h<br />
#define mstring_h<br />
#include<br />
// size_t<br />
#include<br />
class mstring {<br />
public:<br />
mstring();<br />
mstring(const char *);<br />
mstring(const mstring&);<br />
~mstring();<br />
mstring& assign(const mstring&);<br />
mstring& assign(const char *);<br />
// Standardkonstruktor<br />
// allg. Konstruktor<br />
// Kopierkonstruktor<br />
// Destruktor<br />
// Zuweisung eines mstring<br />
// Zuweisung eines char*<br />
<strong>Breymann</strong> <strong>C++</strong>, c○ Hanser Verlag München<br />
Inhalt ◭◭ ◭ ◮ ◮◮ 268 zurück Ende