next up previous contents index
Next: Geerbte Default-Parameterwerte nie ändern Up: 50 Ways to Improve Previous: Vererbung von Schnittstelle und/oder

Eine geerbte nicht-virtuelle Funktion nicht überschreiben

  Mit nicht-virtuellen Funktionen erbt man auch deren Implementierung (siehe 9.36). Die sollte man nicht umdefinieren.

     

Darüberhinaus, kann dann statische Bindung zu Überraschungen führen:

    class base
    { public:
      void memberfun()
      { ... }
    };
    class deriv : public base
    { public:
      void memberfun()
      { ... } // Besser nicht !!!
    };
    deriv d;
    base *bp = &d;
    bp->memberfun();  // ist base::memberfun


next up previous contents index
Next: Geerbte Default-Parameterwerte nie ändern Up: 50 Ways to Improve Previous: Vererbung von Schnittstelle und/oder

Peter Pfahler, 1997