首页 > 解决方案 > 在哪里指定 inline 关键字、基类、派生类或两者都有关系吗?

问题描述

假设我们不想提示编译器在适用的情况下内联成员函数。

class Base
{
 public:
      inline virtual f() = 0;
};

class Derived : public Base
{
 public:
      virtual f() override; // no inline specifier here
};

我需要指定inlineinDerived::f()还是可以省略关键字并确保它virtual Derived::f()inline Derived::f()?

我的意思是inline关键字是隐式指定的Derived::f()还是我需要再次显式键入它?

标签: c++inheritanceinlinevirtual

解决方案


我需要指定inlineinDerived::f()还是可以省略关键字并确保它virtual Derived::f()inline Derived::f()?

如果在派生类中省略inline关键字,则不inline在派生类中。

我的意思是inline隐式指定的关键字Derived::f()

不它不是。

还是我需要再次明确输入?

是的你是。但是,编译器很可能会为它生成代码,就好像它是非inline成员函数一样,因为它是virtual成员函数。


推荐阅读