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