当前位置:   article > 正文

C++:44---关键字virtual、override、final

virtual final

一、虚函数

  • 概念:在函数前面加virtual,就是虚函数

虚函数的一些概念:

  • 只有成员函数才可定义为虚函数,友元/全局/static/构造函数都不可以

  • 虚函数需要在函数名前加上关键字virtual

  • 成员函数如果不是虚函数,其解析过程发生在编译时而非运行时

  • 派生类可以不覆盖(重写)它继承的虚函数

重写(覆盖)的概念与规则

  • 派生类重写(覆盖)基类中的函数,其中函数名,参数列表,返回值类型都必须一致,并且重写(覆盖)的函数是virtual函数

  • 虚函数在子类和父类中的访问权限可以不同

  • 相关规则:

    • ①如果虚函数的返回值类型是基本数据类型:返回值类型必须相同

    • ②如果虚函数的返回值类型是类本身的指针或引用:返回值类型可以不同,但派生类的返回值类型小于基类返回值类型

    • 基类与派生类的虚函数名与参数列表相同,至于参数列表为什么一致是为了避免虚函数被隐藏 

    • 函数返回值有以下要求:

class A {public:int a;public:A(int num) :a(num) {};virtual A& func() {}; //虚函数};class B:public A
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/43461
推荐阅读
相关标签
  

闽ICP备14008679号