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

二.继承博客相关传送门

相关推荐
似水এ᭄往昔2 分钟前
【C++】--AVL树的认识和实现
开发语言·数据结构·c++·算法·stl
程序员zgh9 分钟前
常用通信协议介绍(CAN、RS232、RS485、IIC、SPI、TCP/IP)
c语言·网络·c++
气π17 分钟前
【JavaWeb】——(若依 + AI)-基础学习笔记
java·spring boot·笔记·学习·java-ee·mybatis·ruoyi
暗然而日章19 分钟前
C++基础:Stanford CS106L学习笔记 8 继承
c++·笔记·学习
阿里云云原生24 分钟前
AgentScope Java 1.0:从模型到应用,AI Agent 全生命周期管理利器!
java·云原生
running up31 分钟前
Maven依赖管理和项目构建工具
java·maven
有点。38 分钟前
C++ ⼀级 2023 年06 ⽉
开发语言·c++
charlie11451419139 分钟前
编写INI Parser 测试完整指南 - 从零开始
开发语言·c++·笔记·学习·算法·单元测试·测试
mmz12071 小时前
前缀和问题2(c++)
c++·算法
老华带你飞1 小时前
列车售票|基于springboot 列车售票系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习·spring