// Inheritance & upcasting #include class Instrument { public: void play() { cout << "Instrument::play" << endl; } }; // Piano erbt von Instrument und implementiert zusaetzliche Eigenschaften class Piano : public Instrument { // additional features public: void stimmen() { cout << "Piano::stimmen" << endl; } void play() { cout << "Piano::play" << endl; } }; // Blaeser erben von Instrument class Blaeser : public Instrument { // public members of Instrument are also // public in Blaeser // public: // void play() { // cout << "Blaeser::play" << endl; // } }; class Trumpet : public Blaeser { // implementation of Trumpet simulation to come later };