inline的使用

本文深入探讨了C++中内联函数的定义与使用,解释了为何内联函数的定义通常放置在头文件中,以及如何确保在多个文件中的一致性。同时,文章提到了构造函数和析构函数作为内联函数的潜在问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1) inline函数的定义放在头文件中,在头文件中不能够写函数的实习,但是使用inline则可以写函数的实现

inline 在大多数 C++ 程序中是编译行为。其次,因为内联函数要在调用点展开,所以编译器必须随处可见内联函数的定义,要不然就成了非内联函数的调用了。所以,这要求每个调用了内联函数的文件都出现了该内联函数的定义。因此,将内联函数的定义放在头文件里实现是合适的,省却你为每个文件实现一次的麻烦。

(2) 声明跟定义要一致
如果在每个文件里都实现一次该内联函数的话,那么,最好保证每个定义都是一样的,否则,将会引起未定义的行为。如果不是每个文件里的定义都一样,那么,编译器展开的是哪一个,那要看具体的编译器而定。所以,最好将内联函数定义放在头文件中。

(3) 构造函数和析构函数往往是 inlining 的糟糕候选人

因为构造函数和析构函数编译器往往做了各式各样的保证。当你创建对象, 每一个基类和成员都会自动构造, 当你释放对象, 每个基类和成员都要自动释放。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值