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
相关推荐
im_AMBER10 分钟前
CSS 01【基础语法学习】摇滚侠11 分钟前
Spring Boot 3零基础教程,深度理解 Spring Boot 自动配置原理,笔记11向阳花开_miemie32 分钟前
Android音频学习(二十二)——音频接口艾莉丝努力练剑34 分钟前
【C++STL :stack && queue (一) 】STL:stack与queue全解析|深入使用(附高频算法题详解)胡萝卜3.01 小时前
深入理解string底层:手写高效字符串类kyle~1 小时前
计算机系统---CPU的进程与线程处理fanstering1 小时前
腾讯混元P3-SAM: Native 3D Part Segmentation只是懒得想了1 小时前
用C++实现一个高效可扩展的行为树(Behavior Tree)框架bkspiderx1 小时前
C++设计模式之行为型模式:模板方法模式(Template Method)我是华为OD~HR~栗栗呀1 小时前
华为OD-23届考研-Java面经