加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 将内联方法从头文件移动到.cpp文件

发布时间:2020-12-16 06:48:26 所属栏目:百科 来源:网络整理
导读:我在foo.h头文件中定义了以下类 class Foo {public: inline int Method();};inline int Foo::Method() { // Implementation } 我现在想将实现移动到foo.cpp文件.为此,我必须删除inline关键字并将方法的实现移动到这样的foo.cpp文件 #include `foo.h`inline i
我在foo.h头文件中定义了以下类

class Foo {

public:
    inline int Method();

};

inline int Foo::Method() { // Implementation }

我现在想将实现移动到foo.cpp文件.为此,我必须删除inline关键字并将方法的实现移动到这样的foo.cpp文件

#include `foo.h`

inline int Foo::Method() { // Implementation }

我有两个问题:

>我关于删除内联关键字的声明是否正确?是否必须删除?
>删除内联关键字通常会影响性能(实际上我的所有方法都是内联的)?

非常感谢你提前.

解决方法

如果将函数定义从标题移动到cpp文件,则必须删除该函数的所有所有位置的内联关键字.使用较旧的连接器可能会使事情略微变慢,但使用现代连接器时,您应该注意到性能没有真正的差异.*

在某些情况下,公共成员函数可以内联,但这只是一个坏主意.不要这样做.可以使用参数将某些私有成员函数标记为内联,但实际上您真正想要的是__attribute __((always_inline))或__forceinline

*在极少数情况下,它会有所作为,但99%的时间不会,99.9%的你不在乎.如果测量显示您达到了万分之一,则可以使用前面提到的__forceinline.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读