以下实现之间是否存在差异?
class Foo
{
int bar(int x) const
{ return x * 2; }
};
class Foo
{
inline int bar(int x) const
{ return x * 2; }
};
答案 0 :(得分:2)
根据C ++标准(9.3会员功能)
2 可以在其类定义中定义成员函数(8.4) 在哪种情况下,它是内联成员函数(7.1.2),或者它可能是 如果已经定义,则在其类定义之外定义 声明但未在其类定义中定义。
和
3也可以是内联成员函数(无论是静态还是非静态) 在其类定义之外定义提供它的 类定义中的声明或其定义之外的 class definition将函数声明为inline。
答案 1 :(得分:0)
当函数标记为inline
时,它告诉编译器将函数的代码放到调用函数的位置。你可以有隐式和显式的内联 - 类的成员函数是隐式内联的,所以你不需要输入它,在你的情况下没有区别。
答案 2 :(得分:0)
7.1.2函数说明符
3类定义中定义的函数是内联函数。 内联说明符不应出现在块作用域函数中 宣言。 94(内联关键字对函数的链接没有影响。)如果在朋友中使用内联说明符 声明,该声明应为定义或功能 应事先声明为内联。
所以,不。没有区别。