Vererbung von Operatoren (1/2)

Werden von einer Klasse Operatoren als Klassenmethode definiert, so werden diese analog zu allen anderen Funktionen vererbt. Das heißt, wird z. B. ein operator+ definiert, so ist dieser auch in abgeleiteten Klassen vorhanden, sofern diese ihn nicht definieren. Wird hingegen derselbe Operator in einer abgeleiteten Klasse neu definiert, so wird damit die Definition der Basisklasse überschrieben -- unabhängig von der Parameterliste.

  class A
  {
    public:
      int n;
      A& operator=(int m) { n = m; return *this; }
      int operator==(int m) { return (n == m); }
  };

class B : public A { public: void ausgabe() { cout << n; } };

class C : public B { public: char c; int operator==(char ch) { return (c == ch); } // operator==(int) nun nicht mehr sichtbar! // falls auch notwendig, definiere: // int operator==(int m) { A::operator==(m); } };