C 中的内联成员函数:深入探究
内联成员函数在类定义中声明,但在类主体之外实现。虽然它们通常驻留在头文件中,但在某些情况下,将实现放在头文件中是不可行的。
考虑类 A 包含类 B 的实例,并且类 B 声明内联成员的情况函数 getA() 返回 A 的实例。由于循环包含,我们被迫将 getA() 的实现移至 B.cpp 文件。
问题出现了:编译器会内联吗获取A()?根据 C FAQ,内联函数的定义必须位于头文件中,除非它专门在单个 .cpp 文件中使用。在我们的例子中,定义在 B.cpp 中,这意味着 getA() 不会被内联,除非它在 B.cpp 本身中使用。
关于内联关键字的意义,建议只使用类体之外的函数定义中的函数以获得最佳实践。
至于寻找一种在 .cpp 文件中定义内联成员函数的替代方法,不幸的是,据我们所知,还没有一种方法。该定义必须驻留在头文件中,以便编译器执行内联。
以上是内联成员函数可以在.cpp文件中实现吗?的详细内容。更多信息请关注PHP中文网其他相关文章!