class A
{
public:
void f1()
{
cout<<"A::f1\r\n"<<endl;;
}
virtual void f2()
{
cout<<"A::f2\r\n"<<endl;;
}
void callfunc()
{
cout<<"A::callfunc\r\n"<<endl;
f1();
f2();
}
};
class B:public A
{
public:
void f1()
{
printf("B::f1\r\n");
}
void f2()
{
printf("B::f2\r\n");
}
void callfunc()
{
cout<<"B::callfunc\r\n"<<endl;
f1();
f2();
}
};
int main(void)
{
B p;
B *pB=&p;
A *pA=&p;
pB->callfunc();
pA->callfunc();
return 0;
}
最后结果: