c++ - What is the whole idea of virtual function? -


here in code able point derived class pointer base class object , m able set , value of base class private member. if not giving issues need of virtual functions , whole confusion around run time polymorphism/late binding/vtable bla bla bal!!!

#include <iostream> using namespace std;  class base {     int a; public:     base(int x=0):a(x){}     void setvalueformember(int p)     {         a=p;     }     void showvalueofmember(){cout<<endl<<a<<endl;} };  class derived:public base {     int b; public:     derived(){}     derived(int y):b(y){}     void setvalueformember(int q)     {         b=q;     }     void showvalueofmember(){cout<<endl<<b<<endl;} };  int main() {     derived d;     d.setvalueformember(10);     derived *dptr = new derived();     dptr = &d;     dptr->showvalueofmember();     base b;     dptr = (derived*)&b;     dptr->setvalueformember(20);     dptr->showvalueofmember();     return 0; } 

virtual function used in case when , want access members of derived class using pointer of type, base class.

  • when use

bptr=&d;

you won't able access members of derived class , except members inherited base class. if want access members of derived class using same pointer bptr, must have use virtual function,

  • and @ time of compilation decided function going executed, that's why known

run-time polymorphism or dynamic binding

.


Comments