访问者应该内联吗?

Lou*_*uis 13 c++ inline

这是头文件中的声明:

class PrimeSieve  
{
    populate(int lim);
    vector<int> sieve;
    long long limit;

    public:
        unsigned int limit();
};
Run Code Online (Sandbox Code Playgroud)

我应该在.cpp文件中还是在.h中定义访问器方法?

我是C++的新手,但我想遵循最佳实践.我在一些书中看过这个 - 这被认为是标准吗?

unsigned int limit() { return limit; };
Run Code Online (Sandbox Code Playgroud)

Ben*_*igt 11

绝对在头文件中内联写入访问器.它可以实现更好的优化,并且不会减少封装(因为对私有数据格式的更改需要重新编译包含头的所有单元).

在复杂算法的情况下,您可能希望在实现文件中隐藏定义.或者,当实现需要类定义所不需要的某些类型/头文件时.这些情况都不适用于简单的访问者.

对于单行,将其放在类定义中.稍长的成员函数应该仍然在头文件中,但可以inline在类定义之后显式声明.


Gre*_*ndt 7

大多数较新的编译器都足够聪明,可以内联所需的内容并将其他所有内容都留下.因此,让编译器尽其所能,不要试图再次猜测它.

将所有代码放在.cpp和.h中的代码声明中.