头文件中的内联类方法

时间:2015-05-04 12:51:41

标签: c++ optimization inline

以下实现之间是否存在差异?

class Foo
{
     int bar(int x) const
     { return x * 2; }
};


class Foo
{
     inline int bar(int x) const
     { return x * 2; }
};

3 个答案:

答案 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(内联关键字对函数的链接没有影响。)如果在朋友中使用内联说明符   声明,该声明应为定义或功能   应事先声明为内联。

所以,不。没有区别。