1、函数的默认参数
cpp#include <iostream> using namespace std; //如果自己传入数据,就用自己的数据,如果没有,就用默认值 int func(int a, int b=20, int c=30) { return a + b + c; } //注意事项 //1、如果某个位置已经有了默认参数,那么从这个位置往后,从左到右都必须有默认值 //int func2(int a, int b = 10, int c,int d) { // //} //2、如果函数声明有默认参数,函数实现就不能有默认参数 二义性 //声明和实现只能有一个默认参数 int func2(int a = 10, int b = 10); int func2(int a = 10, int b = 10) { return a + b; } int main() { //cout << func(10,30) << endl; system("pause"); return 0; }
2、函数的占位参数
cpp#include <iostream> using namespace std; //目前阶段的占位参数 还用不到 后面会用到 void func(int a, int) { cout << "this is func" << endl; } //占位参数还可以有默认参数 void func2(int a, int=10) { cout << "this is func" << endl; } int main() { func(10,10); func2(10); system("pause"); return 0; }
3、函数重载
cpp#include <iostream> using namespace std; //函数重载的满足条件 //1、同一个作用域下 //2、函数名称相同 //3、函数参数类型不同,或者个数不同,或者顺序不同 void func() { cout << "func 的调用" << endl; } void func(int a) { cout << "func(int a)的调用" << endl; } void func(double a) { cout << "func(double a)的调用" << endl; } void func(int a,double b) { cout << "func(int a,double b)的调用" << endl; } void func(double b,int a ) { cout << "func(double b,int a)的调用" << endl; } int main() { //func(); //func(10); //func(3.14); //func(10, 3.14); func(3.14, 10); system("pause"); return 0; }
4、函数重载的注意事项
cpp#include <iostream> using namespace std; //1、引用作为重载的条件 void func(int& a) { cout << "fun(int& a)调用" << endl; } void func(const int& a) { cout << "fun(const int& a)调用" << endl; } //2、函数重载碰到默认参数 void func2(int a) { cout << "func2(int a)的调用" << endl; } void func2(int a,int b=10) { cout << "func2(int a,int b=10)的调用" << endl; } int main() { /*int a = 10; func(a);*/ //func(10); //func2(10);报错,当函数重载碰到默认参数,出现二义性。尽量避免 system("pause"); return 0; }
函数高级(个人学习笔记黑马学习)
寻心的无心者2023-09-01 18:41
相关推荐
koo3641 分钟前
pytorch深度学习笔记19你撅嘴真丑4 分钟前
第八章 - 贪心法历程里程碑14 分钟前
Linux 17 程序地址空间u01092727117 分钟前
模板元编程调试方法2401_8384725141 分钟前
C++图形编程(OpenGL)-dzk-1 小时前
【代码随想录】LC 203.移除链表元素winfreedoms1 小时前
java-网络编程——黑马程序员学习笔记Trouvaille ~1 小时前
【Linux】线程同步与互斥(三):生产者消费者模型实战Queenie_Charlie1 小时前
八皇后问题五VV1 小时前
【ESP32】SP3手柄与ESP32连接不上问题解决