美文网首页
C++ 多态

C++ 多态

作者: Mr_约科 | 来源:发表于2020-03-18 23:46 被阅读0次

一同 两 不同
不同子类对象,同一消息,不同操作

参考文章
https://blog.csdn.net/qq_39412582/article/details/81628254

1. 虚函数、非虚函数 在父类、子类之间的调用

(1)同名函数几种情况

  • 虚函数 virtual
    • 一个在父类一个在子类
      重写
    • 同在父类 或 同在子类
      重载
  • 非虚函数
    • 一个在父类一个在子类
      重载
    • 同在父类 或 同在子类
      重载

问题集 1. override 关键字 在函数声明后面出现,是否可以在函数定义的后面? override是重写,所以一般出现在子类 重写父类 的虚函数 。

参考文章
https://blog.csdn.net/qq_33169689/article/details/101721404
https://blog.csdn.net/liyuye/article/details/9570051

2. 父子类 贡 外部而言 和 内部而言

(1)外部而言

①基本用法_1

父类指针 ---> 虚函数(参数列表)

②关键指标
父类指针 指向哪个 子类。(1)如果指向的子类重写了这个被调用的虚函数,则就调用子类中被重写的虚函数;(2)如果指向的子类没有重写这个被调用的虚函数,则就调用父类本身的虚函数。


①基本用法_2

父类指针 ---> 非虚函数(参数列表)

②关键指标

是否还需要看 子类 是否重载了 这个函数?

如果结果还是和上面 一致,则 关键字 Virtual 的意义 何在?

(2)内部而言

是否需要加上, 类名::

① 子类函数体 具体定义部分,可直接调用父类非虚函数?

②如果调用的这个函数,子类 重载 了呢?

(1)如果这个非虚函数,在子类中 没有重载,可以在子类函数体具体定义部分中,直接写这个 非虚函数的函数名,就可以调用到父类 这个非虚函数。(已实践证明); (2)如果这个非虚函数,在子类中 被重载,???


①子类函数体 具体定义部分,可直接调用父类虚函数?

②如果调用的这个 虚函数,子类 重写 了呢?

相关文章

  • 深刻剖析之c++博客文章

    三大特性 封装、继承、多态 多态 C++ 虚函数表解析C++多态的实现原理 介绍了类的多态(虚函数和动态/迟绑定)...

  • 多态的C++实现

    多态的C++实现 1 多态的原理 什么是多态?多态是面向对象的特性之一,只用父类指针指向子类的对象。 1.1 多态...

  • C++ 的多态(Polymorphism), virtual f

    多态 c++支持两种多态,编译时多态和运行时多态但其实编译时多态根本不是真正的多态,编译时多态就是函数的重载,ov...

  • C++第六篇多态

    C++中的多态性分为编译时多态性和运行时多态性,编译时多态通过函数重载和模板体现,运行多态通过虚函数体现编译、连接...

  • 面试题目收集总结

    C++: 多态: 多态性都有哪些?(静态和动态,然后分别叙述了一下虚函数和函数重载) c语言和c++有什么区别?(...

  • C++的多态

    C++三大特性:封装、继承和多态。其中最好理解的就是封装了,继承作为C++面向对象的特征也不难理解,那么多态,应该...

  • 实现golang语言的多态

    如何实现golang语言的多态? C++里面有多态是其三大特性之一,那么golang里面的多态我们该怎么实现? g...

  • Swift 多态实现探究

    多态 父类指针指向子类对象 Swift 中多态的实现类似于 c++ 中的虚表 OC 多态实现利用的是 Runtim...

  • C++编译期多态和运行期多态

    C++多态有多种实现方式,在面对对象编程时,采用的是运行期多态,也称动态多态。在泛型编程中,多态基于模板的具现化与...

  • c++多态

    什么是多态性? 多态:相同对象收到不同消息或不同对象收到相同消息时产生不同的动作。C++支持两种多态性:编译时多态...

网友评论

      本文标题:C++ 多态

      本文链接:https://www.haomeiwen.com/subject/qlypnctx.html