c++ 多态的理解
对于一个类而言,在编译之后,其占空间大小就是其成员变量的大小,而成员函数是不在这个对象中的,在调用成员函数时,其实是把这个对象的指针传入这个函数,而不是我们根据其字面意思所认为的对象调用了其自己的成员函数,那么可以不定义对象直接调用呢,是不可以的,因为编译器在编译成员函数时需要传入一个参数,即对象的指针,当然这只是针对普通的成员函数,内联函数、静态函数就不一样了(c++ 一个程序有四个存储部分,全局数据、代码区、栈区、堆区,普通的成员函数编译后存放在代码区)。
什么是多态:我的理解是 多态就是不同的对象调用同一函数,发生不同的行为。多态发生作用要和指针和继承关系相联系,多态的作用在于根据指针的地址指向的方向来决定调用的函数,调用的函数可能各不相同(这里有个我认为比较重要的点就是在调用不同的函数时可以调用其对象的内部数据),通过一个基类的指针可以调用不同对象的名为同一个函数的不同方法,这在我看来更像是一个子类给外部的接口,当然很多说法说基类是父类,子类继承了父类的方法和结构,但是父类很少有什么具体的定义,它只是一些虚拟概念的集合。

那么多态的作用是什么,我的理解是这样的,对于一些行为相近的对象给它们一个概念,比如说动物类,或者游戏里面的怪物类和精灵类,它们有一些的属性,行为是相近的,我如果要添加新的个体,直接派生就可以了,这样便于在逻辑上管理,当它们进行一些行为时,可以直接定义一个基类的指针来指向它们,这样使得逻辑上更加清晰,多态是一种在逻辑上使得编程更加清晰的编译器概念。

浙公网安备 33010602011771号