类的成员函数一般默认为内联函数,但具体是不是按内联执行则由编译器根据函数的特性来定。
下面说一下显式声明和定义类的成员为内联时的情况。
1、在类内中加inline声明,在类外也加inline进行定义,编译通过。
2、在类内中加inline声明,在类外不加inline进行定义,编译通过。
3、在类内中加inline声明,同时进行定义,编译通过。
但是:
上面前两种情况在写头文件(类的声明)和类的实现时,特别注意:必须把声明和实现同时写在头文件中,不能分开写。
尽管其声明和实现不同时在类内部,但它们必须同时位于头文件中,否则就会出错:
提示[Error] undefined reference to `Box::getlength()' 即提示没有定义。
==========================================================
在声明常量成员函数时,声明(头文件)和定义(实现)部分都必须在函数头的后面加上const
==========================================================
在声明静态数据成员时,声明中必须写上static,在定义上不能写上(如果写上,就表明是另一个全局变量了)
=========================================================