bloggerads

2013年12月28日 星期六

C++ : virtual function

參考以下的範例,若想統一用base class pointer指向base class object以及 derived class object, 但base class 和 derived class 又有相同的函式, 那麼就必須將這種相同的函式宣告成virtual function 才能達到

#include <iostream>

class c1{
  public:
     virtual void vfunc(){ std::cout << "Calling c1\n";}
};
class c2: public c1{
  public:
     virtual void vfunc(){ std::cout << "Calling c2\n";}
};
int main()
{
  class c1 *c;
  class c1 c1_obj;
  class c2 c2_obj;
  
  c = &c1_obj;
  c->vfunc();
  
  c = &c2_obj;
  c->vfunc();
  
  return 0;
}

___________OUTPUT____________
Calling c1
Calling c2

沒有留言:

張貼留言