#include class parent { protected: int i2; void f2() { cout << "protected parent method" << endl; } }; class child : public parent { public: void worker() { i2 = 1; f2(); } }; int main(int argc, char **argv) { child x; parent y; x.worker(); // y.f2(); // Forbidded... }