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); } };