#include class parent { public: int i1; void f1() { cout << "parent method" << endl; } }; class child : public parent { public: int i2; void f2() { cout << "child method" << endl; } }; int main(int argc, char **argv) { parent x, *p; child y, *q; y.i1 = 1; p = &y; // Casted child variable y into parent reference p cout << "p->i1 = " << p->i1 << endl; // OK cout << "p->i2 = " << p->i2 << endl; // Error !! }