C++11:OVERRIDE 与 FINAL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++11:OVERRIDE 与 FINAL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含714字,纯文字阅读大概需要2分钟。
内容图文
![C++11:OVERRIDE 与 FINAL](/upload/InfoBanner/zyjiaocheng/609/0cd2123ecc0c47d398d1e47945073b8f.jpg)
override
-
多态行为的基础:基类声明虚函数,继承类声明一个函数覆盖该虚函数
-
覆盖要求: 函数签名(signatture)完全一致
-
函数签名包括:函数名 参数列表 const
下列程序就仅仅因为疏忽漏写了const,导致多态行为没有如期进行
显式函数覆盖
- C++11 引入显式函数覆盖,在编译期而非运行期捕获此类错误。
- 在虚函数显式重载中运用,编译器会检查基类是否存在一虚拟函数,与派生类中带有声明override的虚拟函数,有相同的函数签名(signature);若不存在,则会回报错误。
final
- C++11提供的final,用来避免类被继承,或是基类的函数被改写
struct Base1 final { };
struct Derived1 : Base1 { }; // 编译错误:Base1为final,不允许被继承
struct Base2 { virtual void f() final; };
struct Derived2 : Base2 { void f();}; // 编译错误:Base2::f 为final,不允许被覆盖
内容总结
以上是互联网集市为您收集整理的C++11:OVERRIDE 与 FINAL全部内容,希望文章能够帮你解决C++11:OVERRIDE 与 FINAL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】