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();
}