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
相关推荐
myloveasuka4 分钟前
信号操作集函数山野万里__18 分钟前
C++与Java内存共享技术:跨平台与跨语言实现指南Binary_ey37 分钟前
超表面重构卡塞格林望远镜 | 从传统架构到新型光学系统Mr_Xuhhh1 小时前
网络基础(1)roman_日积跬步-终至千里1 小时前
【学习线路】机器学习线路概述与内容关键点说明醇醛酸醚酮酯2 小时前
std::promise和std::future的使用示例——单线程多链接、多线程单链接背影疾风2 小时前
C++之路:类基础、构造析构、拷贝构造函数寻丶幽风2 小时前
论文阅读笔记——VGGT: Visual Geometry Grounded Transformer程序员弘羽2 小时前
C++ 第四阶段 内存管理 - 第二节:避免内存泄漏的技巧天水幼麟3 小时前
python学习笔记(深度学习)