内联函数

内联函数的定义对编译器来说必须是可见的,以便编译器能够在调用点内联展开该函数的代码。此时内联函数仅有原型是不够的。

所以内联函数在程序中可以多次定义。如若某个源文件需要使用某一内联函数,则必须在该源文件中再次进行定义,这样并不会引发重复定义的错误,但前提是任何一个源文件中内联函数的定义至多出现一次且每个源文件中的定义都必须是相同的,即遵循“单一定义规则”。一般把内联函数的定义放在头文件中,可以确保在调用函数时所使用的定义是相同的。

对于类内的成员函数,如果成员函数直接在类内定义了,则编译器隐式地将其当作成员函数,这也就意味着除了类内只声明函数,定义放在另一个源文件中外,我们还可以直接把定义放在类内,由于隐式内联所以当头文件被多个文件包含时也不会出现重复定义函数的错误。但如果类的成员函数在类内声明,但定义在类外(且仍在头文件中)时不会隐式内联,这时会导致重复定义错误,可以通过显式的将成员函数声明为内联来解决。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值