C++ 中的内联虚函数


C++ 中的虚函数用于创建基类指针列表,并调用任何派生类的函数,而无需了解派生类对象的类型。虚函数在运行时进行后期解析。

虚函数的主要用途是实现运行时多态性。内联函数用于提高代码效率。每次调用内联函数时,在编译时,内联函数的代码替换为内联函数调用点。

无论何时使用基类引用或指针调用虚函数,都不能内联此函数,但是,如果使用不带该类的引用或指针调用对象,则可以内联,因为编译器在编译时知道对象的精确类。

示例代码

 动态演示

#include<iostream>
using namespace std;
class B {
   public:
      virtual void s() {
         cout<<" In Base \n";
      }
};

class D: public B {
   public:
      void s() {
         cout<<"In Derived \n";
      }
};

int main(void) {
   B b;
   D d; // An object of class D
   B *bptr = &d;// A pointer of type B* pointing to d
   b.s();//Can be inlined as s() is called through object of class
   bptr->s();// prints"D::s() called"
   //cannot be inlined, as virtualfunction is called through pointer.
   return 0;
}

输出

In Base
In Derived

更新于: 2019 年 7 月 30 日

2K+ 浏览量

开启你的 职业

通过完成课程获得认证

开始
广告