class Base { public: Base(); Base(int x); void overloaded(int x); void overloaded(char c); int everyoneCanReference; protected: int derivedCanReference; void overriddenInDerived(double r); private: int onlyThisClassCanReference; }; class Derived : public Base { public: Derived(int x) : Base(x) { /* ... */ }; protected: void overriddenInDerived(double s); }