next up previous contents index
Next: Zugriff auf Basisklassen-Elemente Up: Klassen-Hierarchien und Vererbung Previous: Klassen-Hierarchien und Vererbung

Ein erstes Beispiel

Die Klasse sigma berechnet die laufende Summe der Zahlen, die übergeben werden:

    class sigma
    { double sum;
    public:
      sigma() : sum(0.0){}
      void input(double d) { sum += d;}
      double getsum()      { return sum;}
    };
    
    int main()
    { sigma x;
      x.input(1);
      x.input(12.5);
      cout << "The sum is " 
           << x.getsum() << endl;
    }
schreibt

    The sum is 13.5

Nun soll jedoch der Durchschnitt der eingegebenen Zahlen ermittelt werden. Statt eine völlig neue Klasse zu definieren, kann sigma erweitert werden:

    class mue : public sigma
    { int n;
    public:
      mue() : n(0) {}
      void input(double d) 
      { sigma::input(d); n++;
      } 
      double getavg()      
      { return n? getsum()/n : 0;}
      };
    int main()
    { mue x;
      x.input(1);
      x.input(12.5);
      cout << "Sum " << x.getsum() << endl;
      cout << "Avg " << x.getavg() << endl;
    }

schreibt

    Sum 13.5
    Avg 6.75

Beobachtungen:


next up previous contents index
Next: Zugriff auf Basisklassen-Elemente Up: Klassen-Hierarchien und Vererbung Previous: Klassen-Hierarchien und Vererbung

Peter Pfahler, 1997