C++保留字override
       override 仅在成员函数声明之后使用时才是区分上下文的且具有特殊含义;否则,它不是保留的关键字。使用 override 有助于防止代码中出现意外的继承行为。以下示例演示在未使用override 的情况下,可能不打算使用派生类的成员函数行为。编译器不会发出此代码的任何错误。

在派生类的成员函数中使用override时,如果基类中无此函数,或基类中的函数并不是虚函数,编译器会给出相关错误信息。

加上关键字override,可以不用再函数前加上virtual。

class BaseClass
{
  virtual void funcA();
  virtual void funcB() const;
  virtual void funcC(int = 0);
  void funcD();
};
 
class DerivedClass: public BaseClass
{
  virtual void funcA() override; // ok
 
  virtual void funcB() override; // compiler error: DerivedClass::funcB() does not 
                  // override BaseClass::funcB() const
 
  virtual void funcC( double = 0.0 ) override; // compiler error: 
                         // DerivedClass::funcC(double) does not 
                         // override BaseClass::funcC(int)
 
  void funcD() override; // compiler error: DerivedClass::funcD() does not 
              // override the non-virtual BaseClass::funcD()
};

在虚函数 声明中写override的作用相关推荐

  1. c语言函数声明中,static inline和extern inline的区别

    c语言函数声明中,static inline和extern inline的区别 "extern"关键字对于普通函数没有作用 "extern"和"sta ...

  2. Unity2D学习笔记Day12:敌人统一死亡动画+Class的继承(含虚函数virtual,重写override)

    学习资源:B站 M_Studio<Unity教程2D入门>17 Unity Assets:Sunnyland Day12 调用frog死亡动画效果 这里我没有完全按照教程的方法,是自己写的 ...

  3. c/c++开发,无可避免的自定义类类型(篇三).类与虚函数

    深入而全面了解virtual虚函数与类设计关系 目录 一.virtual 函数说明符的作用 二.virtual 成员函数与普通成员函数 三.不必每个派生类重定义virtual 函数 四.派生类可以兼顾 ...

  4. C++构造函数、虚函数

    一:构造函数 基本构造函数: 执行过程:1)传参   2)给类数据成员开辟空间     3)执行冒号语法给数据成员初始化    4)执行构造函数括号里面的内容 例如: class Base{ publ ...

  5. PKU C++程序设计实习 学习笔记3 多态与虚函数

    第六章 多态与虚函数 6.1 多态和虚函数的基本概念 引言 多态是面向对象程序设计里面非常重要的这个机制.它能很有效的提高程序的可扩充性. 有些程序设计语言有被对象继承的概念,但是没有多态的概念,那这 ...

  6. (八)C++学习 | 虚函数和多态的基本概念

    文章目录 1. 虚函数 2. 多态 3. 基于多态的实例 3.1 魔法门之英雄无敌 3.2 几何形体处理程序 4. 总结 参考 1. 虚函数 在类的定义中,前面带有关键字virtual的成员函数称为虚 ...

  7. C++经典问题_06 虚函数和纯虚函数以及多态

    文章目录 一. 虚函数和纯虚函数以及多态的概念 二. 虚函数详解 ① 虚函数的定义 ② 虚函数和普通函数重写时候的区别 ③ 虚函数的常见错误 ④ 如何避免虚函数的使用错误 三. 虚函数指针和虚函数表 ...

  8. C++中的虚函数(virtual function)

    1回顶部 一.简介 虚函数是C++中用于实现多态(polymorphism)的机制.核心理念就是通过基类访问派生类定义的函数.假设我们有下面的类层次: class A { public: virtua ...

  9. C++中重载与重写函数区别及虚函数(转载)

    C++中重载与重写函数区别及虚函数 C++中的虚函数(virtual function) 1.简介 虚函数是C++中用于实现多态(polymorphism)的机制.核心理念就是通过基类访问派生类定义的 ...

  10. 【C++grammar】多态、联编、虚函数

    目录 1.多态概念 1.多态性有两种表现的方式 2.联编(实现多态) 1.静态联编 2.动态联编 3.实现运行时多态 1.为何要使用运行时多态? 2.如何实现运行时多态 3.多态的例子 1.调用哪个同 ...

最新文章

  1. w7系统装天联高级版服务器,w7系统有几个版本你都知道吗?
  2. 技巧:教你一招优化 Go GC
  3. 网络协议之:socket协议详解之Datagram Socket
  4. Linux高级编程--01.vi命令
  5. pythonlive2d_Unity-Live2D资源载入
  6. linux 查看本机网关地址,linux查看服务器网关地址
  7. python开发商城实战_python框架Django实战商城项目之工程搭建
  8. ASP.NETLinkButton的Click事件中获取CommandArgument的值
  9. ubuntu14.04下安装cudnn5.1.3,opencv3.0,编译caffe及配置matlab和python接口过程记录
  10. 自动化测试的概念及工具
  11. verilog学习记(快速入门)
  12. Mac 下 CocoaPods软件⁩汉化
  13. opencv的下载报错解决
  14. WINDOWS下内存泄漏检测工具VLD(Visual Leak Detector)的使用
  15. 计算机教师成绩分析总结与反思,成绩分析总结与反思
  16. 来了!SpringBoot从入门到入魔的私房教程!
  17. 【吐血推荐】什么是领域驱动设计?DDD?
  18. Android APP OpenGL ES应用(01)GLSurfaceView 2D/3D绘图基础
  19. 联想电池召回网上登记 Troubleshooting
  20. MapX编程详解(C++)----MapX发布技术

热门文章

  1. 苹果该怎么办?特朗普誓言将会严厉惩罚外迁公司
  2. org_chart.js 使用方法
  3. Gitlab的管理使用手册
  4. WinForm开发之点滴整理
  5. samba服务器的设置
  6. signature=32c56289e10e63e51063305adfc34ef0,Deconfinement transition and Black Holes
  7. Spring Boot 2.4.0-RC1, 2.1.18, 2.2.11 和 2.3.5 发布
  8. CCleaner v5.73.8130 发布,系统清理工具
  9. 一个 JS 库就能解决小程序跨页传递事件消息和数据
  10. phpstom怎样导出数据库_用phpStorm的数据库工具来管理你的数据库