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

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

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

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

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

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

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

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

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

  • 相关阅读:
    剑指Offer
    剑指Offer
    剑指Offer
    面积(area)
    最少步数
    细胞
    集合的前N个元素
    1~100卡特兰数(存一下hhhh)
    [Codeforces137C]History(排序,水题)
    [Codeforces676B]Pyramid of Glasses(递推,DP)
  • 原文地址:https://www.cnblogs.com/XiHua/p/4979767.html
Copyright © 2011-2022 走看看