How can you tell which
f2() will be invoked:
A::f2() method or
B::f2()? In the following code,
f1 is not virtualthus, it calls
A::f1(); which in turn calls the
f2() function. Because
f2() is virtual, it doesnt call
A::f2() it calls
B::f2().
class A{
public:
void f1(){
cout<<"A::f1 invoked "<<endl;
f2(); //calling f2 function
}
virtual void f2()
{
cout<<" A::f2() invoked"<<endl;};
class B:public A
{
public:
void f2(){
cout<<"B::f2() is invoked"<<endl;
}
};
int main()
{
A *a=new B();
a->f1(); //f1 is not virtual ;
return 1;
}