C++ override 和 final的准确介绍及原理分析

0x00 c++11 标准 提供的显式函数覆盖检测手段(override)

背景:在派生类中写覆盖基类中的虚函数时,可能会因为疏忽,使得没有正确覆盖,而这个问题还是比较难发现的
解决:c++ 11标准实现了显式函数覆盖的关键字override,当我们写上这个关键字时,就是告诉编译器,我要覆盖基类的虚函数,那么编译期就会主动检查 派生类 和 基类 中的两个函数签名(Signature)是否相同,如果不相同,就会报编译期的错误

0x01 c++11 标准 提供显式的指针不可被重指向(final)

背景:希望类不可被继承或函数不可被重载时使用

注意:final和override不是关键字,只是标识符,但是使用可是当做是关键字,都是在控制编译做固定的行为
同时:在Visual Stuidio和C++11标准中,可以将override与final用作变量名和函数名,它们不是语言本身的关键字,但不建议这样使用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值