标头中关键字“ inline”的使用

时间:2019-06-14 11:46:07

标签: c++

我读到inline充其量只是一个提示,编译器可能会内联或可能不会内联已声明为inline的成员函数,并且它也可能内联函数在编译时不会被内联或链接时间。

如果这是真的,那么两者之间是否有任何区别:

在“ myClass.h”中:

class cls {
public:
  result_t fc(typeA a, typeB b);
  result_t fc(typeC c, typeB b);
  ...
}
inline result_t cls::fc(typeC c, typeB b) {
    return fc(c.getA(), b);
}

class cls {
public:
  result_t cls::fc(typeA a, typeB b);
  result_t cls::fc(typeC a, typeB b) { return fc(c.getA(), b); } // note: not 'inline'
}

编辑:感谢@EmileVrijdags提供了出色的链接,该链接(为我澄清了)为什么声明中的定义默认情况下必须为inline:如果没有,则将有多个定义(即,每个定义以及包含头文件的每个位置)

0 个答案:

没有答案