函数与重载
1.参数
你不能将一个方形的栓放在圆形的洞里 ——俗语
c++函数传参有两种方式:
- 值传递(无法直接改变变量)
- 引用传递(简化版指针,直接控制变量)
//值传递 int app(int a,double b) //引用传递 int app(int& a,double& b)
#includeusing namespace std; void input(int &a,int &b); void change(int &a,int &b); void show(int a,int b); int main() { int a,b; input(a,b); change(a,b); show(a,b); return 0; } void input(int &a,int &b) { cout << "请输入两个整数"; cin >> a >> b; } void change(int &a,int &b) { int temp; temp = b; b = a; a = temp; } void show(int a,int b) { cout << a < 陷阱:无意义的局部变量:
如果希望改变变量,一定要使用引用传递;函数重载:
int ave(int n,int m) { return (n + m)/2; } int ave3(int n,int m,int a) { return (n + a + m)/2; } //上面两个函数其实可以用重载描述 int ave(int n,int m) { return (n + m)/2; } int ave(int n,int m,int a) { return (n + a + m)/2; }重载可以让n一个函数名一对多如下,同一个函数名可以输送两个实参或三个实参:
#includeusing namespace std; double avg(int a,int b,int c); double avg(int a,int b); int main() { int a,b,c; cin >> a >>b; cout << avg(a,b); cin >>a >>b >>c; cout << avg(a,b,c); return 0; } double avg(int a,int b) { return (a+b)/2.0; } double avg(int a,int b,int c) { return (a+b+c)/3.0; } 函数签名:函数名与函数参数列表的类型组成;
陷阱:不要将毫无关系的两个函数使用同一个函数名;
在使用重载的时候最好把过程写的详细一些,



