一、什么是override

override的翻译是覆盖。实际上它在C++中可以检测哪些虚函数没有被重写并报错
注:在派生类的成员函数中使用override时,如果基类中无此函数,或基类中的函数并不是虚函数,编译器会给出相关错误信息。

二、使用步骤

先定义一个基类,基类中的func被声明为一个虚函数

#include<iostream>
using namespace std;
class Base
{public:Base(){cout << "Base的构造函数的调用" << endl;}virtual void func()//多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码{cout << "Base的func的调用" << endl;}virtual ~Base(){cout << "Base的析构函数的调用" << endl;}
};

多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码
(纯)虚析构可以解决父类指针释放子类对象

派生类对func函数重写

class Son : public Base
{public:Son(){cout << "Son的构造函数的调用" << endl;}virtual void func() override;~Son(){cout << "Son的析构函数的调用" << endl;}
};void Son::func()
{cout << "Son的func函数的调用" << endl;
}void test()
{Base* son = new Son;son->func();delete son;
}int main()
{test();return 0;
}

运行结果

派生类对象实例化时会创建基类 构建先有父 再有子 析构反之
派生类的func覆盖重写了基类的func

今天做题时看见之前没见过的关键字override,浅浅记录一下

C++关键字override相关推荐

  1. C++ ——一文读懂:关键字override

    override在C++中它是覆盖了一个方法并且对其重写,从而达到不同的作用.在我们C++编程过程中,最熟悉的就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需要实现接口声明 ...

  2. C++之关键字:override

    总结:在重写方法时,最好加上这个override这个关键字以加强代码规范. ovrride关键字,其实写不写无所谓. #include<iostream> using namespace ...

  3. Java中的关键字@Override解释

    @Override标签的作用: @Override是伪代码,表示方法重写(继承父类,重写父类函数). @Override标签的好处: 1.作为注释,帮助自己检查是否正确的复写了父类中已有的方法 2.便 ...

  4. C++ override 关键字用法

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

  5. C++-[override]关键字使用详解

    本文介绍了C++ override关键字使用详解以及与重载的区别. C++ override关键字使用详解 一.override作用 二.override在基类与派生类的应用 2.1. 纯虚函数 2. ...

  6. override关键字

    在学习设计模式的时候接触到了 override 关键字,查看相关资料后整理如下. Override 关键字作用 如果派生类在虚函数声明时使用了 override 描述符,那么该函数必须 重写 其基类中 ...

  7. C++11特性:override

    override override 语义 override 代码示例 override override 语义 override 就是辅助你检查是否继承了想要虚继承的函数. 关键字 override ...

  8. C++——override

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

  9. C++新特性探究(二):override、final

      "改写"(override)和"重载"(overload)读起来很像,尽管这是两个毫不相干的概念. --<Effective Modern C++&g ...

最新文章

  1. Android--学习路线指南
  2. AIX 操作系统日常维护须知
  3. Objective-C中block的底层原理
  4. 基于Asp.Net Core打造轻量级内部服务治理RPC(一)
  5. 机器视觉【基础】什么是机器视觉?
  6. C# 中的readonly属性
  7. I2C是什么,什么类型设备支持I2C,为什么要使用它?
  8. 三星电视显示服务器无响应,三星电视网络电视看不了是怎么回事?
  9. html页面添加视频背景设置为自动播放,打开网址就会自动播放,简单有效亲测
  10. 解决linux中tmp目录下的文件被清理的问题
  11. vscode设置好看的编程字体
  12. 17年前那场疫情:马云隔离在家,刘强东关了12家店,俞敏洪欠债700万......
  13. (八) 爬虫教程 |Scrapy框架的使用
  14. NTRIP传输相关,上篇SNIP NTRIP Caster学习笔记扫盲补充
  15. 【Java系列】(四)Java多线程---线程安全
  16. 【微信小程序】图片被压扁怎么办?在image中添加 mode=widthFix
  17. 在树莓派中Linux环境下rpm包的安装
  18. 使用vue中的transition标签实现点击缓慢展开,再点缓慢关闭
  19. 扁平化设计与思维导图
  20. 论文翻译:Anytime Stereo Image Depth Estimation on Mobile Devices

热门文章

  1. Matlab论文插图绘制模板第55期—带等高线的网格曲面图(Meshc)
  2. 渗透测试抓包神器BurpSuite2022.5
  3. 鸿蒙电视厂商,华为首款鸿蒙系统产品成行业公敌!只因开机无广告:遭十大品牌批评...
  4. perf与火焰图使用介绍
  5. 蓝天变多了,为什么你家里的空气却更差了?
  6. 亿万人脉APP和人脉大师的本质区别分析
  7. python数据压缩和流压缩-zlib
  8. 盘点2018:咖啡因让人越战越勇
  9. 【Hadoop】YouTube 视频数据集分析实验 (原理+过程+代码)
  10. 时间序列 R 10 其他进阶预测方法 Advanced forecasting methods