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

前言

大家好吖,欢迎来到 YY 滴C++系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁

主要内容含:

欢迎订阅 YY滴C++专栏!更多干货持续更新!以下是传送门!

目录

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

  • 从上面可以看出,C++对函数重写的要求比较严格,但是有些情况下由于疏忽,可能会导致函数
    名字母次序写反而无法构成重载,而这种错误在编译期间是不会报出的,只有在程序运行时没有
    得到预期结果才来debug会得不偿失,因此:C++11从两个角度提供了overridefinal两个关键字,可以帮
    助用户检测是否重写。
  • final:表示虚函数不能被重写,被重写即报错
  • override:检查虚函数是否重写了别的虚函数,重写了即报错

【1】 final:表示虚函数不能被重写,被重写即报错

cpp 复制代码
class Car
{
public:
 virtual void Drive() final {}
};
class Benz :public Car
{
public:
 virtual void Drive() {cout << "Benz-舒适" << endl;}
};

【2】override:检查虚函数是否重写了别的虚函数,重写了即报错

cpp 复制代码
class Car{
public:
 virtual void Drive(){}
};
class Benz :public Car {
public:
 virtual void Drive() override {cout << "Benz-舒适" << endl;}
};

二.继承博客相关传送门

相关推荐
Coder_Boy_8 小时前
基于SpringAI的在线考试系统-阅卷评分模块时序图
java·人工智能·spring boot
linweidong8 小时前
C++大型系统中如何组织头文件和依赖树?
java·c++·架构
橘子师兄8 小时前
C++AI大模型接入SDK—环境搭建
开发语言·c++·人工智能
鹿角片ljp8 小时前
力扣14.最长公共前缀-纵向扫描法
java·算法·leetcode
pengweizhong8 小时前
Dynamic‑SQL2 查询篇:MyBatis 增强利器,让 SQL 像写 Java 一样丝滑
java·sql·教程
Remember_9938 小时前
【数据结构】深入理解优先级队列与堆:从原理到应用
java·数据结构·算法·spring·leetcode·maven·哈希算法
偷星星的贼118 小时前
C++中的状态机实现
开发语言·c++·算法
程序员敲代码吗8 小时前
C++中的组合模式实战
开发语言·c++·算法
Leo July9 小时前
【Java】Spring Cloud 微服务生态全解析与企业级架构实战
java·spring cloud
Marktowin9 小时前
SpringBoot项目的国际化流程
java·后端·springboot