【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;}
};

二.继承博客相关传送门

相关推荐
随遇而安zx9 分钟前
【多线程】---ConcurrentHashMap 源码解析
java·多线程·并发
luj_176812 分钟前
一线一区一变破解人盯人防守密码
开发语言·网络·c++·经验分享·算法
不才不才不不才16 分钟前
Spring 源码系列(27): @Transactional 七大失效场景与源码归因
java·后端·spring
广州山泉婚姻18 分钟前
C/C++动态内存:堆内存的申请、使用与释放
c++·人工智能
随遇而安zx19 分钟前
【多线程】---线程池 ThreadPoolExecutor 原理与调优
java·线程池·多线程
抠脚小弟22 分钟前
WebSocketServer 使用详解:从入门到实战
java·spring·websocketserver
随便做点啥27 分钟前
32卡64G-910B4-16后端集群部署报告
java·大数据·运维
Wang's Blog35 分钟前
Java框架快速入门: Spring Security+OAuth2之字段验证与自定义验证注解实战
java·算法·spring
CodeStats36 分钟前
【Java 类加载器】Java 类加载器完整体系深度拆解(上):从 JVM 启动到双亲委派模型
java·开发语言·jvm·classloader·双亲委派
带多刺的玫瑰41 分钟前
Leecode#29刷题之两数相除
java·python·算法