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

来源:互联网 发布:2017年淘宝店怎么装修 编辑:程序博客网 时间:2024/04/29 06:56

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


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


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


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


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


但是:


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


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

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


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

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


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

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


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






原创粉丝点击