class test1
{
public:
virtual void proc1();
void proc();
};
class test2:public test1
{
public:
virtual void proc1();
};
void test1::proc1()
{
cout<<"1";
}
void test1::proc()
{
proc1();
}
void test2::proc1()
{
cout<<"2";
}
定义了test1和test2两个类,其中test2为test1的子类。其中两个类中都有虚函数Proc1,子类test1还有个成员函数Proc,此成员函数会调用虚函数Proc1。
test2 A;
A.proc();
实例化一个test2类对象,然后调用test1的成员函数proc。由于c++多态的作用实际proc函数调用的是test2的Proc1。因为其是通过虚拟指针查表得到的proc1函数的地址,所以是多态。