override关键字作用:
如果派生类在虚函数声明时使用了override描述符,那么该函数必须重载其基类中的同名函数,否则代码将无法通过编译。
举例子说明

struct Base
{
virtual void Turing() = 0;
virtual void Dijkstra() = 0;
virtual void VNeumann(int g) = 0;
virtual void DKnuth() const;
void Print();
};
struct DerivedMid: public Base
{
// void VNeumann(double g);
//接口被隔离了,曾想多一个版本的VNeumann函数
};
struct DerivedTop : public DerivedMid
{
void Turing() override;
void Dikjstra() override; //无法通过编译,拼写错误,并非重载
void VNeumann(double g) override; //无法通过编译,参数不一致,并非重载
void DKnuth() override; //无法通过编译,常量性不一致,并非重载
void Print() override; //无法通过编译,非虚函数重载
};

(之前听过,但是没看过结构体重载 ==)

如果没有使用override关键字,上面的写法编译可以通过但是运行的效果与真实意愿(希望重载)不符
举例子说明
class testoverride
{
public:
testoverride(void);
~testoverride(void);
virtual void show() const = 0;
virtual int infor() = 0;
virtual void test() = 0;
virtual int spell() = 0;
};

class B: public testoverride
{
public:
virtual void show(); //1
virtual void infor(); //2
virtual void vmendd(); //3
virtual void test(int x);//4
virtual void splle(); //5
};

上面的1-5个重载函数编译过程中,除了返回值不同的infor会报错以外,其他函数都不会有问题,但是在类实例化的时候会提示是抽象类,因为他们都没有真正实现重载

class C: public testoverride
{
public:
virtual void show() override;
virtual void infor() override;
virtual void vmendd() override;
virtual void test(int x) override;
virtual void splle() override;
};

添加了override以后,会在编译器override修饰符则可以保证编译器辅助地做一些检查,上面的情况无法通过编译

结论
如果派生类里面是像重载虚函数 就加上关键字override 这样编译器可以辅助检查是不是正确重载,如果没加这个关键字 也没什么严重的error 只是少了编译器检查的安全性

---------------------
作者:xiaoheibaqi
来源:CSDN
原文:https://blog.csdn.net/xiaoheibaqi/article/details/51272009
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/yrm1160029237/p/10093406.html

C++——override相关推荐

  1. 浅显易懂 Makefile 入门 (02)— 普通变量和自动变量定义、使用($@、$^、$< 作用)、变量覆盖 override、变量的来源 origin

    1. 变量的定义 Makefile 文件中定义变量的基本语法如下: 变量的名称=值列表 变量的名称可以由大小写字母.阿拉伯数字和下划线构成.等号左右的空白符没有明确的要求,因为在执行 make 的时候 ...

  2. C#中类的继承 override virtual new的作用以及代码分析

    继承中override virtual new的作用 virtual 父类中需要注明允许重写的方法: override 子类中必须显示声明该方法是重写的父类中的方法: new 子类中忽略父类的已存在的 ...

  3. C++11中override的使用

    override是C++11中的一个继承控制关键字.override确保在派生类中声明的重载函数跟基类的虚函数有相同的声明. override明确地表示一个函数是对基类中一个虚函数的重载.更重要的是, ...

  4. Java 重写(Override)与重载(Overload)

    TestDog.java /*  * 重写(Override)  * 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变.即外壳不变,核心重写!  * 重写的好处在于子类 ...

  5. 坚持使用Override 注解(36)

    2019独角兽企业重金招聘Python工程师标准>>> 1.覆盖超类时千万小心,一不小心就变成重载了 2.现代的IDE 会在覆盖父类方法而没有使用@Override 时给出一个警告 ...

  6. 在有@Override方法上面会报错如下

    在有@Override方法上面会报错如下: The method oncreate(Bundle) of type HelloWorld must override or implement a su ...

  7. 重载和覆盖的区别?(overload vs override)

    override与overload的区别? override 表示重写,overload 表示重载. override是子类和父类之间的关系,是垂直关系:overload是同一个类中方法之间的关系,是 ...

  8. 新装myeclispse8.6GA、@Override出错

    过几天要考试,重新配下环境.下载好myeclispse8.6.tomcat6.0.myeclispse优化工具.myeclispse语言转换工具. 开始干活,因为myeclispse8.6集成JDK, ...

  9. java override overwrite,重写(overwrite)、重载(overload)和覆盖(override)

    覆盖(override):子类继承了父类的同名无参函数.当子类从父类继承了一个无参函数,而又定义了一个同样的无参函数,则子类定义的方法覆盖父类的方法,称为覆盖.废弃父方法 1.覆盖的方法的标志必须要和 ...

  10. java override 访问权限_java 重写(Override)的规则

    遵循的规则: [1]访问修饰符的限制一定要不小于被重写方法的访问修饰符 比如:Object类有个toString()方法,开始重写这个方法的时候我们总容易忘记Public修饰符,出错的原因就是:没有加 ...

最新文章

  1. 教程 | 单级式目标检测方法概述:YOLO与SSD
  2. Python写各大聊天系统的屏蔽脏话功能原理
  3. 甘肃关于领取软考2021年上半年合格证书的通知
  4. 八城联动 丨 神策 2020 数据驱动用户大会「长沙站」重磅来袭!
  5. 《深入C++对象模型》笔记
  6. windows 7(32/64位)GHO安装指南(序篇)~
  7. 小物件之radio单选列表
  8. 我了解到的面试的一些小内幕!附面试题答案
  9. 【python】hashlib.shasha256练习注册 --笔记
  10. 【java机器学习】支持向量机之拉格朗日乘子法解释
  11. java监听器的原理与实现
  12. 标准BST二叉搜索树写法
  13. 计算机两字符是多少磅,word字符磅 word里一个字符等于多少磅
  14. 住宅和公寓有什么区别
  15. borderColor与CGColor/UIColor
  16. 战地5未能达到服务器带宽,《战地5》游戏bug汇总以及解决方案介绍
  17. 男人二十岁后应该学会的习惯
  18. Getting Started and Beyond|云原生应用负载均衡选型指南
  19. 驱动专题:第五章MTD及Flash驱动 4.Norflash驱动
  20. 多传感器融合定位(二)——基于地图的定位

热门文章

  1. 谁能答对这道题?如有兴趣,请留下算法,呵呵~
  2. 作为前端,你需要了解的js构造函数和原型
  3. JS 基础知识点及常考面试题(二)
  4. 交互系统的构建之(二)Linux下鼠标和键盘的模拟控制
  5. java线程创建销毁_c++多线程的创建挂起执行与销毁
  6. PAT乙级1037 在霍格沃茨找零钱
  7. java 数据库连接不上_JAVA基础(六) 处理连接不上MYSQL数据库的方法
  8. MultipartFile和CommonsMultipartFile的区别!
  9. python 进程池、线程池 与异步调用、回调机制
  10. [BZOJ 2659] [Beijing wc2012] 算不出的算式