dyna/fstring1.hpp

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 FARBSTRING_HPP
#define FARBSTRING_HPP

// Headerdatei der Basisklasse
#include "string.hpp"

// **** BEGINN Namespace Bsp ********************************
namespace Bsp {

/* Klasse FarbString
 * - abgeleitet von String
 */
class FarbString : public String {
  protected:
    String farb;    // Farbe, die der String besitzt

  public:
    // Default-, String- und String/String-Konstruktor
    FarbString (const String& s = "", const String& f = "black")
        : String(s), farb(f) {
    }

    // Farbe abfragen und setzen
    const String& farbe () {
        return farb;
    }
    void farbe (const String& neueFarbe) {
        farb = neueFarbe;
    }

    // Ein- und Ausgabe mit Streams
    virtual void printOn (std::ostream&) const;
    virtual void scanFrom (std::istream&);

    // Vergleichen von FarbStrings
    friend bool operator== (const FarbString& s1,
                            const FarbString& s2) {
        return static_cast<const String&>(s1)
                 == static_cast<const String&>(s2)
               && s1.farb == s2.farb;
    }
    friend bool operator!= (const FarbString& s1,
                            const FarbString& s2) {
        return !(s1==s2);
    }
};

// **** ENDE Namespace Bsp ********************************

#endif // FARBSTRING_HPP