我们已经知道什么是成员函数了,它是根据某种类的功能是需要来定义的。而构造函数、析构函数、拷贝初始化构造函数等都属于特殊的成员函数。成员函数除了说明和定义的类中之外,还有些什么特性呢?
内联函数和外联函数
类的成员函数可以分为内联函数和外联函数。内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内。而说明在类体内,定义在类体外的成员函数叫外联函数。外联函数的函数体在类的实现部分。
内联函数在调用时不是像一般函数那样要转去执行被调用函数的函数体,执行完成后再转回调用函数中,执行其后语句,而是在调用函数处用内联函数体的代码来替换,这样将会节省调用开销,提高运行速度。
内联函数与带参数的宏定义进行下比较,它们的代码效率是一样,但是内联欢函数要优于宏定义,国为内联函数遵循的类型和作用域规则,它与一般函数更相近,在一些编译器中,一旦关上内联扩展,将与一般函数一样进行调用,高度比较方便。
有关内联函数在使用时注意的事项,请参考本栏目“内联函数”一文。
外联函数变成内联函数的方法很简单,只要在函数头前面加上关键字inline就可以了。
重载性
成员函数可以进行重载,前面介绍过构造函数可以重载,而析构函数不能重载,它们是特殊的成员函数。一般的成员函数都可以重载。
有关函数重载的详细介绍,请参考本栏目“函数重载”一文。
设置参数的缺省值
成员函数可以被设置参数的缺省值。一般的成员函数和构造函数都可以被设置参数的缺省值。
关于设置函数参数缺省值的方法和应该注意的事项,请参考本栏目“浅谈c++函数的参数”一文。