Call virtual function through object pointer : object pointer « Class « C++






Call virtual function through object pointer

  
#include <iostream>
using namespace std;
class base 
{
 public:
   virtual void vfunc(void)
    {
      cout << "This is base's vfunc()." << endl;
    }
};

class derived1 : public base 
{
 public:
   void vfunc(void)
    {
      cout << "This is derived1's vfunc()." << endl;
    }
};

class derived2 : public derived1 { };

int main(void)
{
   base *p, b;
   derived1 d1;
   derived2 d2;

   p = &b;        
   p->vfunc();
   p = &d1;       
   p->vfunc();
   p = &d2;       
   p->vfunc();    
 }
  
    
  








Related examples in the same category

1.Use object pointer to reference virtual method
2.Use & to get object address
3.Change the object pointer behaviour
4.Using an array of class objects
5.Use dynamic_cast to convert object pointer to its subclass
6.Need reinterpret cast to perform pointer conversion from unrelated classes
7.Need reinterpret_cast to go from pointer to int and from int to pointer
8.Need reinterpret cast to perform reference conversion from unrelated classes -- static_cast doesn't work
9.Declare object pointer
10.pointers to base class
11.Demonstrating the class member access operators . and ->