C++多态

69 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 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都是对弗雷德析构函数进行重写。

 

多态分类:

多态又分为静态多态和动态多态,静态多态是指 函数重载和运算符重载都是静态多态,服用函数名,动态多态是指派生类和虚函数实现运行时的多态。他来的区别主要在于地址保定的时间以及确定函数地址的时间,静态多态是在编一阶段就已经确定了函数地址,而动态多态是在运行阶段才确定的函数地址。,并且动态多态是通过继承关系来实现的,他的子类需要对傅雷的虚函数进行重写操作。

多太多介绍到此结束,有错的地方请指教!