内容纲要
函数提高
函数默认参数
在c++ 中,函数的形参列表中的参数是可以有默认值的。
语法: 返回类型 函数名 (参数 = 默认值){}
- 注意事项:
- 如果某个位置已经有了默认参数,那么从这个位置往后,从左到右都必须有默认值。(不然编译器不知道你放入的值是不是在默认参数的位置)
- 如果函数声明有默认参数,函数实现就不能有默认参数。(编译时不知道用谁的默认参数)(编译器不报错,但是编译的时候会报错)
函数声明和实现只能由一个有默认参数
- 如果某个位置已经有了默认参数,那么从这个位置往后,从左到右都必须有默认值。(不然编译器不知道你放入的值是不是在默认参数的位置)
函数占位参数
C++ 中函数的形参列表里可以有占位参数,用来做占位,调用时必须填补该位置。
语法: 返回值类型 函数名 (数据类型){}
函数重载
函数重载注意事项
- 引用作为重载条件
- 函数重载碰到函数默认参数
#include<iostream>
using namespace std;
//函数重载的注意事项
//1、 引用作为重载的条件
void func(int &a) {
cout << "func(int &a)被调用!!" << endl;
}
void func(const int &a) {
cout << "func(const int &a)被调用!!" << endl;
}
//2、 函数重载碰到默认参数
void main()
{
const int a = 10;
func(a);
func(10);
}
注意:直接当有引用作为形参时,直接传入数字,编译器在编译的时候会自动生成 const temp = 10;将temp 传给函数。所以调用的是带const 的函数。
函数重载碰到默认参数,会产生二义性(编译器傻了),所以重载尽量不要用默认参数。要么在函数体里默认它。