#include using namespace std; class A { public: ~A() {} void const a() {} }; class P { public: int x; int y; P() : x(0), y(0) {} P(int x, int y) : x(x), y(y) {} }; ostream& operator << (ostream& os, P p) { os << "(" << p.x << "," << p.y << ")"; return os; } class B : public A { P p; public: B(const P& p) : p(p) {} protected: void const b() { cout << "B::p = " << p; } }; class C : public B { public: C(const P& p) : B(p) {} void const a() { B::b(); } }; int main() { P p(19,20); cout << "p=" << p << endl; C c(p); cout << "c.a() liefert: "; c.a(); }