008
29.03.2010, 20:02 Uhr
0xdeadbeef
Gott (Operator)
|
C++: |
void Rechteck::Rechteck(int, int, int); void Rechteck::~Rechteck();
|
...da würde ich mir die entsprechenden Teile des Buchs aber noch mal ansehen.
Nen selbstdefinierten Destruktor wirst du für diese Klasse wohl gar nicht brauchen, also nimm ihn am besten aus der Klassendefinition raus. Konstruktorsyntax sieht beispielsweise aus wie folgt:
C++: |
class A { public: A(int x);
private: int x_; };
A::A(int x) : x_(x) { }
|
Dabei ist
C++: |
A::A(int x) // Signatur : x_(x) // Initialisierungsliste { } // Funktionskörper
|
Nachtrag: Was die Code-Tags angeht, schreib halt vor den Code [ cpp ] und dahinter [ /cpp ] (jeweils ohne die Leerzeichen)
Nachtrag 2:
Übrigens würde ich mir dieses
möglichst gar nicht erst angewöhnen. Das Verhalten ist nur in der Microsoft-C-Bibliothek (dürftig) definiert; wenn du willst, dass dein Code auf anderen Plattformen läuft, bist du damit aufgeschmissen. Ganz abgesehen davon kann es dir etwa bei Umleitung des Eingabestroms passieren, dass du damit deutlich mehr wegschmeißt, als du eigentlich wolltest. Meistens ist
C++: |
#include <limits> #include <iostream>
// ...
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
|
ein besserer und portabler Ersatz. dabei ist
C++: |
std::numeric_limits<std::streamsize>::max()
|
die größte Zahl, die in den Typ std::streamsize passt. Da diese immer mindestens so groß wie der Inhalt des Streams ist, läuft der Aufruf auf "Ignoriere solange Zeichen aus std::cin, bis du einen Zeilenumbruch findest" hinaus, und das ist es, was man in so einer Situation üblicherweise will. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 29.03.2010 um 20:17 Uhr von 0xdeadbeef editiert. |