虚函数不应该是inlined(More Effective C++ 笔记)
2024-08-28 19:25:03
在实际运行中,虚函数所需的代价与内联函数有关。
实际上虚函数不能是内联的。
这是因为“内联”是指“在编译期间用被调用的函数体本身来代替函数调用的指令,”
但是虚函数的“虚”是指“直到运行时才能知道要调用的是哪一个函数。”
如果编译器在某个函数的调用点不知道具体是哪个函数被调用,你就能知道为什么它不会内联该函数的调用。
这是虚函数所需的第三个代价:你实际上放弃了使用内联函数。(当通过对象调用虚函数时,它可以被内联,但是大多数虚函数是通过对象的指针或引用被调用的,这种调用不能被内联。
因为这种调用是标准的调用方式,所以虚函数实际上不能被内联。)
现在的编译器一般总是忽略虚函数的的inline指令。
最新文章
- TYVJ1939 玉蟾宫
- win7设置防火墙允许Ping与telnet
- Hadoop集群错误
- 从PHPCMS、帝国CMS谈站长如何选择适合自己的CMS
- Test execution order
- php代码的一些高效写法
- WEB 开发所用的网站
- win7(32 bit) + IE8 环境,IE8无法弹窗(错误提示:“此网页上的错误可能会使它无法正确运行”),有关的系统注册信息损坏——解决方法
- C# delegate的匿名方法
- easyui easyui-filebox 显示中文
- spring mvc上传下载文件
- webAppbuilder微件使用教程1 快速入门
- 设计模式之生成器(Builder)模式
- 在循环列表的富文本里摘出每个item的img标签内容(适合vue渲染)
- Sql Server数据库之流程定义变量和流程控制语句
- vue+webpack 遇到的问题总结
- mysql-5.7免安装版本设置
- Unity即将内置骨骼动画插件Anima2D
- ZOJ 2475 Benny's Compiler(dfs判断有向图给定点有没有参与构成环)
- js学习笔记14----DOM概念及子节点类型
热门文章
- Java-idea-PMD源文件级别潜在bug查看
- spring requestmapping 拦截多个请求
- ScyllaDB - 基础部署
- gcc报错 can not be used when making a shared object; recompile with -fPIC
- 史上最全的MonkeyRunner自动化测试从入门到精通(2)
- SQL Server System.Data.SqlClient.SqlException:已成功于服务器建立连接,但是在 登录前的握手期间发生错误
- linux体系结构与内核结构图解
- libcurl开源库在Win7 + VS2012环境下编译、配置详解 以及下载文件并显示下载进度 demo(转载)
- 51Nod 1509 加长棒(隔板法)
- 使用git一张图就够了