C++使用final时需要注意什么


这篇文章主要讲解了“C++使用final时需要注意什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++使用final时需要注意什么”吧!谨慎使用finalCapping a hierarchy withfinalis rarely needed for logical reasons and can be damaging to the extensibility of a hierarchy.很少会因为逻辑方面的原因而使用final关键词关闭后续的覆盖函数,这种做法会破坏继承的扩展性。
Not every class is meant to be a base class. Most standard-library classes are examples of that (e.g.,std::vectorandstd::stringare not designed to be derived from). This rule is about usingfinalon classes with virtual functions meant to be interfaces for a class hierarchy.不是所有的类都被设计为基类。大多数标准库中的类就是这方面的例子(例如std::vector和std::string就不是设计用来继承的)。这条规则的使用范围是那些包含虚函数并且意图作为接口被继承的类。
Capping an individual virtual function withfinalis error-prone asfinalcan easily be overlooked when defining/overriding a set of functions. Fortunately, the compiler catches such mistakes: You cannot re-declare/re-open afinalmember in a derived class.定义/覆盖一组函数时,finial很容易被忽略,这种使用final为每个单独的虚函数关闭覆盖函数的做法容易引发错误。幸运的是,编译器可以捕捉这些错误:你无法在派生类中重新定义或重新打开一个final成员。
Claims of performance improvements fromfinalshould be substantiated. Too often, such claims are based on conjecture or experience with other languages.使用final可以提高性能这个判断是缺乏证据的。有太多的情况,这个判断只是源于猜测或者其他语言的经验。
There are examples wherefinalcan be important 香港云主机for both logical and performance reasons. One example is a performance-critical AST hierarchy in a compiler or language analysis tool. New derived classes are not added every year and only by library implementers. However, misuses are (or at least have been) far more common.存在某些场景,无论是由于逻辑还是性能方面的原因,final变得很重要。一个例子就是性能要求非常严格的编译器或者语言分析工具。只有库的实现者会添加新的派生类,而且不会每年增加。但是错误地使用却更加普遍(至少曾经被误用过)。
AST:Abstract syntax tree(抽象语法树)-译者注
Flag uses offinal.标志对于final的使用。感谢各位的阅读,以上就是“C++使用final时需要注意什么”的内容了,经过本文的学习后,相信大家对C++使用final时需要注意什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是开发云,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: pm2清理日志的命令是什么

这篇文章主要介绍“pm2清理日志的命令是什么”,在日常操作中,相信很多人在pm2清理日志的命令是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”pm2清理日志的命令是什么”的疑惑有所帮助!接下来,请跟着 香港云主机小编一起来学…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 08/06 20:18
Next 08/06 20:18

相关推荐