"此时指向基础类的指针pFather已经变成指向具体的类son的this指针,那么我们调用这个pFather父类指针,就相当于调用了等号右边的类即子类son的this指针,这个this所能调用的函数,自然就是子类son本身的函数。即pFather->Say();这行代码调用的是子类的Say()函数。因此我们就成功的实现了用父类指针pFather调用子类函数,也就是实现了多态。" 这部分我觉得不太准确。因为多态实现依靠虚函数表,可以用基类的指针是因为查找虚表的虚表指针在子类的父类部分,生成子类的对象的时候,有了新的虚表,并且对父类的虚方法进行了覆盖,这个指针实际上还是没法调用子类中的非虚函数方法。
1

相关推荐

牛至超人:把哈工大,再加大加粗,看见闪闪发光的哈工大字样,面试官直接流口水
投递字节跳动等公司7个岗位
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务