//The "All birds can fly, //penguins are birds, //penguins can't fly, //un oh" problem class Bird { public: void Fly(); private: ... }; class Penguin: public Bird { ... }; class Bird { ... }; class FlyingBird: public Bird { public: void Fly(); ... }; class NonFlyingBird: public Bird { ... }; class Penguin: public NonFlyingBird { ... }; void error( const CString& Message); //Defined elsewhere class Penguin: public Bird { void fly() {error(Peguins can't fly!);} };