持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第13天,点击查看活动详情
解释:
多态,就是通过一个模板,完成不同的形态,一母生九子,九子各不同。多态就是类似的含义,多态中的基类就是母亲,然而有不同的新类通过集成基类,这里的新类就是九子中的一子,但是每个孩子都有自己的个性,所以在使用的过程中可以通过new 不同的孩子实现所需要不同的功能。
多态的使用:
多态的重中之重就是他的虚函数和重写
虚函数 需要virtual 来修饰类成员函数
class BaseClass
{
public:
BaseClass();
~BaseClass();
public:
virtual void Init()=0; //初始化
};
这里的初始化就是一个虚函数,但是会发现他的结尾前有 =0,可以通过这样设置为纯虚函数 纯虚函数的一般形式:virtual 函数类型 函数名 (参数表列) =0;
class MyUse : public BaseClass
{
public:
MyUse();
~MyUse();
public:
void Init(); //初始化
}
public BaseClass 这里是用于继承BaseClass类,在调用虚函数时,这里所调用的其实是它派生类重写的函数,并不是走进了基类的函数中。
这里需要注意的是:子类的析构函数无论加不加virtual都是对弗雷德析构函数进行重写。
多态分类:
多态又分为静态多态和动态多态,静态多态是指 函数重载和运算符重载都是静态多态,服用函数名,动态多态是指派生类和虚函数实现运行时的多态。他来的区别主要在于地址保定的时间以及确定函数地址的时间,静态多态是在编一阶段就已经确定了函数地址,而动态多态是在运行阶段才确定的函数地址。,并且动态多态是通过继承关系来实现的,他的子类需要对傅雷的虚函数进行重写操作。
多太多介绍到此结束,有错的地方请指教!