在最近的一次同行评审中,另一位软件工程师建议我声明 inline
函数在定义(在类之外)以及在声明(类内部)。他的论点是“通过将其标记为内联,您是在说此方法将比非内联方法执行得更快,并且调用者不必担心对该方法的过多调用。"
这是真的吗?如果我是一个类的用户,我真的关心对方法的过度调用吗?在定义和声明中将其列为内联有什么问题吗? C++ FAQ状态:
Best practice: only in the definition outside the class body.
那么谁在这里呢?
最佳答案
这听起来像是两件完全不相关的事情。不需要将 inline
放在类中的声明和类外的定义中。将其放在其中一个声明中就足够了。
如果您谈论在 .cpp
文件中添加 inline
并在该文件中定义函数,并且该函数是 public
成员,那么你应该不那样做。调用 inline
函数的人必须让他们的定义对他们可见。 C++ 标准要求这样做。
关于c++ - 定义和声明中的内联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9268542/