前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【C++11特性篇】C++11中の【override】【final】关键字——帮助用户检测是否重写

【C++11特性篇】C++11中の【override】【final】关键字——帮助用户检测是否重写

作者头像
YY的秘密代码小屋
发布2024-01-23 09:56:05
580
发布2024-01-23 09:56:05
举报
文章被收录于专栏:C++系列C++系列
在这里插入图片描述
在这里插入图片描述

一.【override】【final】关键字——帮助用户检测是否重写(C++11)

  • 从上面可以看出,C++对函数重写的要求比较严格,但是有些情况下由于疏忽,可能会导致函数 名字母次序写反而无法构成重载,而这种错误在编译期间是不会报出的,只有在程序运行时没有 得到预期结果才来debug会得不偿失,因此:C++11从两个角度提供了 override final 两个关键字,可以帮 助用户检测是否重写。
  • final:表示虚函数不能被重写,被重写即报错
  • override:检查虚函数是否重写了别的虚函数,重写了即报错
【1】 final:表示虚函数不能被重写,被重写即报错
代码语言:javascript
复制
class Car
{
public:
 virtual void Drive() final {}
};
class Benz :public Car
{
public:
 virtual void Drive() {cout << "Benz-舒适" << endl;}
};
【2】override:检查虚函数是否重写了别的虚函数,重写了即报错
代码语言:javascript
复制
class Car{
public:
 virtual void Drive(){}
};
class Benz :public Car {
public:
 virtual void Drive() override {cout << "Benz-舒适" << endl;}
};
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.【override】【final】关键字——帮助用户检测是否重写(C++11)
    • 【1】 final:表示虚函数不能被重写,被重写即报错
      • 【2】override:检查虚函数是否重写了别的虚函数,重写了即报错
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档