首页 >后端开发 >C++ >为什么内联函数定义必须放在头文件中?

为什么内联函数定义必须放在头文件中?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-08 05:05:09539浏览

Why Must Inline Function Definitions Be Placed in Header Files?

为什么内联函数定义驻留在头文件中

在 C 中,将类成员函数声明为内联需要在头文件中实现它们。这一要求源于内联函数的“一个定义规则 (ODR)”,该规则要求使用该函数的所有翻译单元中都存在相同的定义。

确保遵守 ODR 的最简单方法是包含定义位于所有翻译单元均可访问的头文件中。通过这样做,编译器可以在调用该函数的所有实例中找到并使用相同的定义。

尝试将内联定义放入 .cpp 文件中会导致无法解析的外部符号错误。发生这种情况是因为编译器无法在调用它的翻译单元中找到函数定义。

重申一下,头文件中的内联函数定义通过确保每个翻译单元中存在相同的定义来促进 ODR 合规性。但是,需要注意的是,将函数声明为内联并不能保证编译器将其内联。

以上是为什么内联函数定义必须放在头文件中?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn