c++ - 在哪里指定 inline 关键字、基类、派生类或两者都有关系吗?
问题描述
假设我们不想提示编译器在适用的情况下内联成员函数。
class Base
{
public:
inline virtual f() = 0;
};
class Derived : public Base
{
public:
virtual f() override; // no inline specifier here
};
我需要指定inline
inDerived::f()
还是可以省略关键字并确保它virtual Derived::f()
与inline Derived::f()
?
我的意思是inline
关键字是隐式指定的Derived::f()
还是我需要再次显式键入它?
解决方案
我需要指定
inline
inDerived::f()
还是可以省略关键字并确保它virtual Derived::f()
与inline Derived::f()
?
如果在派生类中省略inline
关键字,则不inline
在派生类中。
我的意思是
inline
隐式指定的关键字Derived::f()
不它不是。
还是我需要再次明确输入?
是的你是。但是,编译器很可能会为它生成代码,就好像它是非inline
成员函数一样,因为它是virtual
成员函数。
推荐阅读
- php - appscript htmlservice 模板查询:使用附加到 html 模板的数据更新 href
- java - 这种二分搜索是如何工作的?
- r - 从 R 中的两个单独的数据帧形成一个数据帧
- xcode - OSX codesign cli - 如何禁用 ENABLE_BITCODE?
- dataframe - 如何在数据框中生成 n 列而不为所有列重复 random.randint 公式,如下所示?
- python - 组合函数的两个参数
- java - 为什么 ObjectMapperr 不将值写入文件?
- python - Spyder 无法识别任何已安装的软件包,因此不会加载它们
- json - 如何将两个不同的对象(JSON)(父类和子类)传递给 Postman 中的 POST 请求以测试 API?
- duplicates - 复制文本文件中的每一行