OO-Prinzip: überall, wo ein Objekt der Basisklasse steht, darf auch eine Objekt einer abgeleiteten Klasse benutzt werden.
(...da die abgeleitete Klasse alle Attribute und Methoden der Basisklasse besitzt)
class A { class B : public A {
public: public:
void p () { ... } void p () { ... }
virtual void q () { ... } void q () { ... }
}; };
void check (A & x) { x.p (); x.q (); }
int main () { A a; check (a); B b; check (b); }