关于inline函数和非inline函数

今天在学习C++时看到了“在多个文件中使用类”这一小节,对于其中的内容不是十分理解,因此在此记录,并提出自己的一些看法。

如果有多个文件都需要 用到同一个类,那么就可以把这个类写在一个头文件中,但是类的非内联成员函数的函数体只能出现在一个.cpp文件中,不能放在头文件中被多个.cpp文件包含,否则链接时会发生重复定义的错误。类的内联成员函数的函数体最好写在头文件中,这样编译器在处理内联函数的调用语句时,就能在本文件中找到内联函数的代码,并将这些代码插入调用语句处。内联成员函数放在头文件中被多个.cpp文件包含,不会导致重复定义的错误。——《新标准C++》 郭炜著

上网查阅了下,发现有很多人都说内联函数需要声明定义在一起,并且都放在头文件中。对于内联函数,我也在书上看到过,需要在调用点前面完整定义,即出现声明和函数体,但是需不需要再一起到时没有说,网上也看到了一个例子。只需要在函数声明前加上extern即可实现声明和函数体分离了。
对于内联函数的这一特性,我的理解是这样的:内联函数需要在每一个文件中都有一个定义,因此在头文件中是没问题的,不会出现重复定义的问题;而对于非内联函数,则只需要定义过一次就可以了,在头文件中的话,每个文件都进行一次定义,结果出现了重复定义的错误。
但是我无法确认理解的正确性,甚至相当怀疑,并且该理解也停留于表面,之后有了深入的理解再来补充吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值