#include #include /** g++ -m32 -o inheritance inheritance.cpp **/ class SuperClass{ private: int attr1; public: void func1(){ printf("I'm func1()\n"); } virtual void vfunc(){ printf("I'm vfunc()\n"); } }; class SubClass1:public SuperClass{ public: void vfunc(){ SuperClass::vfunc(); printf("And I'm called from SubClass1\n"); } }; class SubClass2:public SuperClass{ public: void vfunc(){ SuperClass::vfunc(); printf("And I'm called from SubClass2\n"); } }; int main(int argc, char **argv){ SubClass1 *s1 = new SubClass1; SubClass2 *s2 = new SubClass2; s1->func1(); s2->func1(); s1->vfunc(); s2->vfunc(); delete s1; delete s2; return 0; }