内联函数的声明和定义位置

类的成员函数一般默认为内联函数,但具体是不是按内联执行则由编译器根据函数的特性来定。


下面说一下显式声明和定义类的成员为内联时的情况。


1、在类内中加inline声明,在类外也加inline进行定义,编译通过。


2、在类内中加inline声明,在类外不加inline进行定义,编译通过。


3、在类内中加inline声明,同时进行定义,编译通过。


但是:


上面前两种情况在写头文件(类的声明)和类的实现时,特别注意:必须把声明和实现同时写在头文件中,不能分开写。


尽管其声明和实现不同时在类内部,但它们必须同时位于头文件中,否则就会出错:

提示[Error] undefined reference to `Box::getlength()'    即提示没有定义。


==========================================================

在声明常量成员函数时,声明(头文件)和定义(实现)部分都必须在函数头的后面加上const


==========================================================

在声明静态数据成员时,声明中必须写上static,在定义上不能写上(如果写上,就表明是另一个全局变量了)


=========================================================






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值