C ++内联 - 什么是“正确”的方式

时间:2016-12-05 07:09:24

标签: c++ class inlining

我在互联网上搜索了很多用C ++内联的内容,但似乎每个人都喜欢不同的实现方式。

我的问题如下:

// header-file
class Test {
    int i;
    public:
        int getI();
};
// source-file
int Test::getI() { return i; }

由于此函数getI()被调用数千次,我认为“内联”此函数很有用。这样做的最佳方式是什么:

// 1) define the function within the class-definition
class Test {
    int i;
    public:
        int getI() { return i; }
};

// 2) define the function within the header-file
inline int Test::getI() { return i; } // directly located under class-definition

// 3) let the fct-definition stay in the source file and write "inline" before it (somehow this does not compile)

你能给我一个提示,哪种方式是最佳或最佳的实施方式?感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

1和2是相同的。它完全依赖于编译器实际以内联方式调用它。如果你定义一个复杂的"内联"在内部函数中,内联编写并不能保证它是内联的。因此,简而言之,它依赖于编译器。