Mega Code Archive

 
Categories / C++ Tutorial / Class
 

A virtual function

#include <iostream>  using namespace std;    class BaseClass {  public:    virtual void who() { // specify a virtual function      cout << "Base\n";    }  };    class DerivedClass1 : public BaseClass {  public:    void who() { // redefine who() for DerivedClass1       cout << "First derivation\n";    }  };    class DerivedClass2 : public BaseClass {  public:    void who() { // redefine who() for DerivedClass2      cout << "Second derivation\n";    }  };    int main()  {    BaseClass base_obj;    BaseClass *p;    DerivedClass1 DerivedClass1_obj;    DerivedClass2 DerivedClass2_obj;      p = &base_obj;    p->who();  // access BaseClass's who      p = &DerivedClass1_obj;    p->who(); // access DerivedClass1's who      p = &DerivedClass2_obj;    p->who();  // access DerivedClass2's who        return 0;  } Base First derivation Second derivation