在 C 中,将类成员函数声明为内联需要在头文件中实现它们。这一要求源于内联函数的“一个定义规则 (ODR)”,该规则要求使用该函数的所有翻译单元中都存在相同的定义。
确保遵守 ODR 的最简单方法是包含定义位于所有翻译单元均可访问的头文件中。通过这样做,编译器可以在调用该函数的所有实例中找到并使用相同的定义。
尝试将内联定义放入 .cpp 文件中会导致无法解析的外部符号错误。发生这种情况是因为编译器无法在调用它的翻译单元中找到函数定义。
重申一下,头文件中的内联函数定义通过确保每个翻译单元中存在相同的定义来促进 ODR 合规性。但是,需要注意的是,将函数声明为内联并不能保证编译器将其内联。
以上是为什么内联函数定义必须放在头文件中?的详细内容。更多信息请关注PHP中文网其他相关文章!