1.当父类指针指向子类对象,而父类和子类都有相同的函数,该指针调用函数时将调用父类的那个函数

如果父类函数声明成虚函数就可以调用子类函数,具体根据指向哪个子类对象

适用于工厂模式, 通过创建多个子类,实现相应不同函数, 然后根据需求使父类指针指向不同子类对象就能调用

不同函数.这时添加新的子类(用于实现新功能)就能很容易拓展.

虚函数自动选择子类接口

例子:

#include<iostream>

using namespace std;
class c1
{
public:
virtual void show()
{
cout<<"c1"<<endl;
}
};
class c2:public c1
{
public:
void show()
{
cout<<"c2"<<endl;
}
};
class c3:public c1
{
public:
void show()
{
cout<<"c3"<<endl;
}
};
void main()
{
c1* c;
c2 s;
c3 s3;
c=&s;
c->show();
c=&s3;
c->show();
cin.get();
}