首页  >  文章  >  后端开发  >  内联成员函数可以在.cpp文件中实现吗?

内联成员函数可以在.cpp文件中实现吗?

Susan Sarandon
Susan Sarandon原创
2024-10-31 18:36:29600浏览

 Can Inline Member Functions Be Implemented in a .cpp File?

C 中的内联成员函数:深入探究

内联成员函数在类定义中声明,但在类主体之外实现。虽然它们通常驻留在头文件中,但在某些情况下,将实现放在头文件中是不可行的。

考虑类 A 包含类 B 的实例,并且类 B 声明内联成员的情况函数 getA() 返回 A 的实例。由于循环包含,我们被迫将 getA() 的实现移至 B.cpp 文件。

问题出现了:编译器会内联吗获取A()?根据 C FAQ,内联函数的定义必须位于头文件中,除非它专门在单个 .cpp 文件中使用。在我们的例子中,定义在 B.cpp 中,这意味着 getA() 不会被内联,除非它在 ​​B.cpp 本身中使用。

关于内联关键字的意义,建议只使用类体之外的函数定义中的函数以获得最佳实践。

至于寻找一种在 .cpp 文件中定义内联成员函数的替代方法,不幸的是,据我们所知,还没有一种方法。该定义必须驻留在头文件中,以便编译器执行内联。

以上是内联成员函数可以在.cpp文件中实现吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

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