C++基础-3-函数
3. 函数
3.1 函数默认参数
1 #include<iostream> 2 using namespace std; 3 4 //函数的默认参数 5 //自己传参,就用自己的,如果没有,就用默认值 6 int func(int a, int b = 20, int c = 30) 7 { 8 return a + b + c; 9 } 10 11 //注意: 12 //1.如果某个位置有了默认参数,那么从这个位置往后,从左到右必须有默认参数 13 //2.如果函数声明中有默认参数,函数实现就不能有默认参数 14 //即,声明和实现只能一个有默认参数 15 int func2(int a = 10, int b = 20); 16 17 //int func2(int a = 20, int b = 30) { 18 // return a + b; 19 //} 20 // 报错,重定义默认参数 21 22 int main() { 23 24 cout << func(10, 20, 30) << endl; 25 cout << func2(10, 20) << endl; 26 27 system("pause"); 28 29 return 0; 30 } 31 32 //总结 33 //在C++中,函数的形参列表中的形参可以有默认值的 34 //语法:返回值类型 函数名 (参数=参数默认值){} 35 //
3.2 函数占位参数
1 #include<iostream> 2 using namespace std; 3 4 //函数占位参数,占位参数也可以有默认参数 5 void func(int a, int = 10) { 6 cout << "a = " << a << endl; 7 } 8 9 int main() { 10 11 int a = 10; 12 int b = 20; 13 14 func(a, b); 15 16 system("pause"); 17 18 return 0; 19 } 20 21 //总结 22 //形参列表可以有占位参数,用作占位,调用函数时必须填补该位置 23 //语法:返回值类型 函数名(数据类型){}
3.3.1 函数重载概述
#include<iostream> using namespace std; //函数重载 //让函数名相同,提高复用性 void func() { cout << "func的函数调用" << endl; } void func(int a) { cout << "func的函数调用!" << endl; } int main() { func(3); system("pause"); return 0; } //总结 //作用:函数名可以相同,提高复用性 //函数重载满足条件: //1.同一个作用域下 //2.函数名称相同 //3.函数参数类型不同 或者 个数不同 或者 顺序不同 //注意:函数的返回值不可以作为函数重载的得条件
3.3.2 函数重载注意事项
#include<iostream> using namespace std; //函数重载注意事项 //1.引用作为重载条件 void func(int& a) { // int &a = 10; 不合法的 cout << "func (int &a)的调用" << endl; } void func(const int& a) { // const int &a = 10; //会做转换 cout << "func (const int &a)的调用" << endl; } //2.函数重载遇到默认参数 void func2(int a, int b = 10) { cout << "func2 (int a, int b)的调用" << endl; } void func2(int a) { cout << "func2 (int a)的调用" << endl; } int main() { int a = 10; func(a); // func (int &a)的调用 func(10); // func (const int &a)的调用 //func2(10); //当函数重载碰到默认参数,出现二义性,报错,编程时尽量避免 system("pause"); return 0; } //总结 //引用作为重载条件 //函数重载碰到默认参数
参考:《黑马程序员》C++教程
浙公网安备 33010602011771号