Mega Code Archive

 
Categories / C++ / Function
 

Virtual functions retain virtual nature when inherited

#include <iostream> using namespace std; class BaseClass { public:   virtual void myFunction()   {     cout << "Using BaseClass version of myFunction()\n";   } }; class DerivedClass1 : public BaseClass { public:   void myFunction()    {     cout << "Using DerivedClass1's version of myFunction()\n";   } }; class DerivedClass2 : public DerivedClass1 { public:   void myFunction()    {     cout << "Using DerivedClass2's version of myFunction()\n";   } }; int main() {   BaseClass *p;   BaseClass ob;   DerivedClass1 derivedObject1;   DerivedClass2 derivedObject2;   p = &ob;   p->myFunction();                   // use BaseClass's myFunction()   p = &derivedObject1;   p->myFunction();                   // use DerivedClass1's myFunction()   p = &derivedObject2;   p->myFunction();                   // use DerivedClass2's myFunction()   return 0; }