Though that virtual function is accessible if I call it inside derived class' s(); using scope resolution, i.e.:Code:#include<iostream> using namespace std; class A { public: virtual void s() { cout<<"I am in A"<<endl; } }; class B:public A { public: void s() { cout<<"I am in B"<<endl; } }; int main() { A *o; o->s(); //Problem B ob; o=&ob; o->s(); return 0; }
Why can't I call base class (A's) virtual function by base class pointer?Code:void s() { A::s(); cout<<"I am in B"<<endl; }