源文件v.s.内联函数中类定义的函数

function of class definition in source file v.s. inline functions

本文关键字:函数 定义 源文件      更新时间:2023-10-16

我正在重构一个大型的遗留源文件"big.cpp",该文件包含几个仅在该文件中使用的类定义。例如,在big.cpp 中

class A {
  inline void func1() {
    // bla bla ...
  }
  void func2() {
    // bla bla ...
  }
}

有些函数显式地使用内联关键字,有些则不然。

由于这些类只在cpp文件中,甚至不在头文件中,所以非常混乱,不可能进行单元测试等,所以我试图将其拆分为更小的文件,如"a.h"、"a.cpp";那我有个顾虑。重构后,这些函数是否应被视为内联函数?例如,我想func1()应该是内联的,但func2()呢?

我担心,如果一些以前的内联函数改为非内联函数,它们的性能会变慢,所以我必须小心。

如果在类内定义成员函数,如示例中的func2,则隐含inline