此文编写参考狄泰软件学院唐佐林老师的视频课程,如有错误之处,欢迎指正。
1、多态初认识
多态也就是面向对象中期望的行为。
(1) 根据实际的对象类型判断如何调用重写函数
(2) 父类指针(引用)指向
父类对象则调用父类中调用的函数
子类对象则调用子类中定义的重写函数
总的来说就是根据实际的对象类型决定函数调用的具体目标,同样的调用语句在实际运行时有多种不同的表现形态。
2、语法
通过关键字virtual来对函数进行声明
(1)被virtual声明的函数被重写后具有多态特性
(2)被virtual声明的函数叫虚函数
(3)要在父类中对函数进行声明
下面通过一个实例来理解。
#include<iostream>
#include<string>
using namespace std;
class Parent
{
public:
virtual void print()
{
cout<<"I am Parent."<<endl;
}
};
class Child:public Parent
{
void print()
{
cout<<"I am Child."<<endl;
}
};
void how_to_print(Parent* p)
{
p->print();
}
int main()
{
Parent p;
Child c;
how_to_print(&p);
how_to_print(&c);
return 0;
}