#include #include class A{ public: int a; virtual void f() {printf("Called from A\n");}; A(int j){ a = j; printf("A initialize = %d\n", a); } }; class B: public A{ public: int a; virtual void f() {printf("Called from B\n");}; B(int j) : A(j) { a = j; printf("B initialize = %d\n", a); } }; int main() { A *a = new B(1024); a->f(); a = new A(a->a/100); a->f(); a->A::a = 10; printf("\n\n\n%d\n\n\n", a->A::a); getchar(); }