在实际运行中,虚函数所需的代价与内联函数有关。

实际上虚函数不能是内联的。

这是因为“内联”是指“在编译期间用被调用的函数体本身来代替函数调用的指令,”

但是虚函数的“虚”是指“直到运行时才能知道要调用的是哪一个函数。”

如果编译器在某个函数的调用点不知道具体是哪个函数被调用,你就能知道为什么它不会内联该函数的调用。

这是虚函数所需的第三个代价:你实际上放弃了使用内联函数。(当通过对象调用虚函数时,它可以被内联,但是大多数虚函数是通过对象的指针或引用被调用的,这种调用不能被内联。

因为这种调用是标准的调用方式,所以虚函数实际上不能被内联。)

现在的编译器一般总是忽略虚函数的的inline指令。

最新文章

  1. TYVJ1939 玉蟾宫
  2. win7设置防火墙允许Ping与telnet
  3. Hadoop集群错误
  4. 从PHPCMS、帝国CMS谈站长如何选择适合自己的CMS
  5. Test execution order
  6. php代码的一些高效写法
  7. WEB 开发所用的网站
  8. win7(32 bit) + IE8 环境,IE8无法弹窗(错误提示:“此网页上的错误可能会使它无法正确运行”),有关的系统注册信息损坏——解决方法
  9. C# delegate的匿名方法
  10. easyui easyui-filebox 显示中文
  11. spring mvc上传下载文件
  12. webAppbuilder微件使用教程1 快速入门
  13. 设计模式之生成器(Builder)模式
  14. 在循环列表的富文本里摘出每个item的img标签内容(适合vue渲染)
  15. Sql Server数据库之流程定义变量和流程控制语句
  16. vue+webpack 遇到的问题总结
  17. mysql-5.7免安装版本设置
  18. Unity即将内置骨骼动画插件Anima2D
  19. ZOJ 2475 Benny's Compiler(dfs判断有向图给定点有没有参与构成环)
  20. js学习笔记14----DOM概念及子节点类型

热门文章

  1. Java-idea-PMD源文件级别潜在bug查看
  2. spring requestmapping 拦截多个请求
  3. ScyllaDB - 基础部署
  4. gcc报错 can not be used when making a shared object; recompile with -fPIC
  5. 史上最全的MonkeyRunner自动化测试从入门到精通(2)
  6. SQL Server System.Data.SqlClient.SqlException:已成功于服务器建立连接,但是在 登录前的握手期间发生错误
  7. linux体系结构与内核结构图解
  8. libcurl开源库在Win7 + VS2012环境下编译、配置详解 以及下载文件并显示下载进度 demo(转载)
  9. 51Nod 1509 加长棒(隔板法)
  10. 使用git一张图就够了