.cpp 文件中的内联成员函数定义
在 C 中,内联成员函数最好在头文件中定义,以允许编译器在编译期间内联它们。但是,某些情况可能需要将实现放在标头之外,例如类之间的循环依赖关系。
在给定的示例中,类 A 包含类 B,类 B 又包含 A 的前向声明。这样循环往复,B.cpp中定义了B类的getA()函数。这就提出了一个问题:编译器是否仍然内联 getA(),如果是,哪个定义优先?
根据 C FAQ,内联函数的定义必须放在它的头文件中对所有使用它的源文件可见。因此,在这种情况下,编译器不会内联 getA(),除非在 B.cpp 本身内调用。
最佳实践规定 inline 关键字只能在类外部的函数定义中使用一次身体。因此,放置在头文件中的任何内联关键字都是多余的。
不幸的是,没有已知的方法可以在 .cpp 文件中定义内联成员函数,同时仍确保编译器将其内联。
以上是我可以在 .cpp 文件中定义内联成员函数并仍然获得内联吗?的详细内容。更多信息请关注PHP中文网其他相关文章!