Das folgende Code-Beispiel stammt aus dem Buch
Objektorientiertes Programmieren in C++
- Ein Tutorial für Ein- und Umsteiger
von Nicolai Josuttis, Addison-Wesley München, 2001
© Copyright Nicolai Josuttis 2001
#ifndef KOORD_HPP
#define KOORD_HPP
// Headerdatei für I/O
#include <iostream>
namespace Geo {
/* Klasse Koord
* - Hilfsklasse für geometrische Objekte
* - nicht zur Vererbung geeignet
*/
class Koord {
private:
int x; // X-Koordinate
int y; // Y-Koordinate
public:
// Default-Konstruktor und Konstruktor aus zwei ints
Koord () : x(0), y(0) { // Default-Werte: 0
}
Koord (int newx, int newy) : x(newx), y(newy) {
}
Koord operator + (const Koord&) const; // Addition
Koord operator - () const; // Negation
void operator += (const Koord&); // +=
void printOn (ostream& strm) const; // Ausgabe
};
/* Operator +
* - X- und Y-Koordinaten addieren
*/
inline Koord Koord::operator + (const Koord& p) const
{
return Koord(x+p.x,y+p.y);
}
/* einstelliger Operator -
* - X- und Y-Koordinaten negieren
*/
inline Koord Koord::operator - () const
{
return Koord(-x,-y);
}
/* Operator +=
* - Offset auf X- und Y-Koordinaten aufaddieren
*/
inline void Koord::operator += (const Koord& p)
{
x += p.x;
y += p.y;
}
/* printOn()
* - Koordinaten als Wertepaar ausgeben
*/
inline void Koord::printOn (ostream& strm) const
{
strm << '(' << x << ',' << y << ')';
}
/* Operator <<
* - Umsetzung für Standard-Ausgabeoperator
*/
inline ostream& operator<< (ostream& strm, const Koord& p)
{
p.printOn (strm);
return strm;
}
} // namespace Geo
#endif // KOORD_HPP