函数参数默认值
写法如下:
void fun(int i , int j =5, int k = 10);
不能这样写:
void fun(int i , int j =5, int k);
有默认值的参数必须在参数表的最右端
void fun(int i =0 , int j =5, int k = 10);
int main(void)
{
fun();
fun(100);
fun(100,200);
fun(100,200,300);
system("pause");
return 0;
}
void fun(int i , int j , int k )
{
cout << i << "," << j << "," << k << endl;
}
函数重载
在相同的作用域内,用同一函数名定义的多个函数,参数个数和参数类型不同。
void fun(int i =0 , int j =5, int k = 10);
void fun(double i, double j);
int main(void)
{
fun(100,200,300);
fun(1.1,1.2);
system("pause");
return 0;
}
void fun(int i , int j , int k )
{
cout << i << "," << j << "," << k << endl;
}
void fun(double i, double j){
cout << i<< "," << j << endl;
}
内联函数
编译时将函数体代码和实参代替函数调用语句,内联函数内必须简单,不能有循环,不能有递归。
优点:
1)inline定义的内联函数,函数代码被放入符号表中,在使用时进行替换(像宏一样展开),效率很高。
2)类的内联函数也是函数。编绎器在调用一个内联函数,首先会检查参数问题,保证调用正确,像对待真正函数一样,消除了隐患及局限 性。
3)inline可以作为类的成员函数,可以使用所在类的保护成员及私有成员。
关键字:inline
定义内联函数:
inline void fun(int i =0 , int j =5, int k = 10);
int main(void)
{
fun();
fun(100);
fun(100,200);
fun(100,200,300);
system("pause");
return 0;
}
void fun(int i , int j , int k )
{
cout << i << "," << j << "," << k << endl;
}