之前我们说过,内联函数,适用于函数内语句特别少,函数调用开销无法忽略的场合。
类的成员函数也可以定义为内联函数,定义方法有两种:
- inline + 成员函数声明
- 整个函数体出现在类定义内部
例如:
class A {
inline void func1();
void func2()
{
};
};
void A::func1()
{
}
在类A中,func1和func2都是内联成员函数。
成员函数还可以被重载,重载时,函数的入参需要有所不同。如参数个数不同,或参数类型不同。
例如:
class Location {
...
void value_x(int v);
int value_x();
};
这里的两个value_x函数,是两个重载函数,因为其入参不同。第一个为赋值函数,第二个为取值函数。
再看一个错误的例子:
class Location {
...
void value_x(int v=5);
int value_x();
};
因为第一个函数参数有缺省值,所以当调用value_x()时,产生二义性,编译器会报错。