#include<iostream>
#include<string>
using namespace std;//引用作为重载的条件
void func(int &a) { //非常量引用cout << " this is func" << endl;
}void func(const int &a) { // 常量引用 const int &a = 10; 合法cout << "const this is func" << endl;
}//2函数重载碰到默认的参数
void func2(int a) {cout << "func2(int a)的调用"<< endl;
}void func2(int a, int b=10) {cout << " func2(int a, int b)的调用" << endl;
}
int main() {int a = 10;func(a);
// func(10);func2(a);func2(10);system(" pause");return 0;}
函数的重载注意事项:
只会根据三项内容进行重载:参数的个数、参数的类型、参数的顺序
参数默认值:
参数的默认值可以在函数的定义中也可以在函数的声明中,但不能同时有
从第一个有默认值的参数开始,后面都得有默认值
在调用具有默认参数的函数时, 若某个实参默认,其右边的所有实参都应该默认
//例如, 一个函数声明如下
int f(int i1 = 1, int i2 =2, int i3 = 3);
//调用函数 f()
f(); //正确, i1=1, i2=2, i3=3
f(3); //正确, i1=3, i2=2, i3=3
f(2, 3); //正确, i1=2, i2=3, i3=3
f(4, 5, 6); //正确, i1=4, i2=5, i3=6
f(, 2, 3); //错误, i1默认,其右边的i2和i3没有默认