zoukankan      html  css  js  c++  java
  • 虚函数不应该是inlined(More Effective C++ 笔记)

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

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

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

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

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

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

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

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

  • 相关阅读:
    grub损坏修复方法
    基本命令(一)
    python 及 ipython 源码安装
    Samba服务安装配置
    shell语法一
    cacti监控软件
    Telnet服务安装及配置
    LVM逻辑卷,RAID磁盘阵列
    运维笔试题4(转载)
    运维笔试题3(转载)
  • 原文地址:https://www.cnblogs.com/XiHua/p/4979767.html
Copyright © 2011-2022 走看看