文章目录
博客总结 :
- 在 声明 函数时 , 为 函数参数 定义一个默认值 ;
- ” 默认参数 ” 必须 定义在 参数列表 的 末尾 ;
一、默认参数
1、默认参数简介
” 默认参数 ” 概念 : C++ 语言 中的 函数 , 可以在 声明 函数时 , 为 函数参数 定义一个默认值 ;
” 默认参数 ” 运行机制 : 在调用 有默认参数值 的 函数时 , 如果没有提供 某个有默认值参数 的 实参 , 那么编译器在 编译阶段 , 就会使用默认值当做实参 ;
” 默认参数 ” 可以 简化函数调用 和 提高代码重用性 ;
2、代码示例 – 默认参数
下面的代码中 , 为 void fun(int num = 5) 函数 , 提供了默认参数值 5 ;
如果调用 fun 函数 , 不传入参数 , 则使用默认参数值 5 ; 不传入参数 , 打印的值为 5 ;
// 不传入参数 , 使用默认参数值 5
fun();
如果调用 fun 函数 , 显示传入参数 , 则使用传入的参数 ; 传入参数 7 , 则打印的值为 7 ;
// 显式传入参数值7
fun(7);
代码示例 :
// 导入标准 io 流头文件 其中定义了 std 命名空间
#include <iostream>
// 导入 std 命名空间
using namespace std;
// 设置了默认参数的函数
void fun(int num = 5) {
cout << "num = " << num << endl;
}
int main() {
// 不传入参数 , 使用默认参数值 5
fun();
// 显式传入参数值7
fun(7);
// 控制台暂停
system("pause");
return 0;
}
执行结果 :
num = 5
num = 7
请按任意键继续. . .
二、默认参数定义规则
1、默认参数定义在参数列表末尾
” 默认参数 ” 必须 定义在 参数列表 的 末尾 ;
一旦在函数的 参数列表 中出现了 ” 默认参数 ” , 那么 之后的所有参数 都必须有 默认参数 , 否则 编译时 会报错 ;
2、反面示例 – 默认参数后有普通参数编译报错
在下面的函数 void fun(int num, int num1 = 5, int num2) 中 , 第三个参数 num2 是普通的参数 , 只要出现了第一个默认参数 , 之后的所有参数都必须是默认参数 ;
反面代码示例 :
// 导入标准 io 流头文件 其中定义了 std 命名空间
#include <iostream>
// 导入 std 命名空间
using namespace std;
// 设置了默认参数的函数
void fun(int num, int num1 = 5, int num2) {
cout << "num = " << num << " , num1 = " << num1 << " , num2 = " << num2 << endl;
}
int main() {
// 显式传入参数值7
fun(7);
// 控制台暂停
system("pause");
return 0;
}
执行结果 :
1>------ 已启动生成: 项目: HelloWorld, 配置: Debug Win32 ------
1>Hello.cpp
1>Y:\002_WorkSpace\002_VS\HelloWorld\HelloWorld\Hello.cpp(7): error C2548: “fun”: 缺少形参 3 的默认实参
1>Y:\002_WorkSpace\002_VS\HelloWorld\HelloWorld\Hello.cpp(13,10): fatal error C1903: 无法从以前的错误中恢复;正在停止编译
1>“C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\bin\HostX86\x86\CL.exe”中的内部编译器错误
1> 请选择 Visual C++
1>“帮助”菜单上的“技术支持”命令,或打开技术支持帮助文件来获得详细信息
1>已完成生成项目“HelloWorld.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
3、正面示例 – 默认参数需要放在最后
下面的 函数参数 中 , num 是 普通参数 , 没有默认值 ;
后面两个 num1 和 num2 都是有 默认值 的参数 ;
之后如果还有参数 , 也必须有默认值 ;
如果想要设置没有默认值的参数 , 那么必须放在前面 ;
// 设置了默认参数的函数
void fun(int num, int num1 = 5, int num2 = 7) {
cout << "num = " << num << " , num1 = " << num1 << " , num2 = " << num2 << endl;
}
完整代码示例 :
// 导入标准 io 流头文件 其中定义了 std 命名空间
#include <iostream>
// 导入 std 命名空间
using namespace std;
// 设置了默认参数的函数
void fun(int num, int num1 = 5, int num2 = 8) {
cout << "num = " << num << " , num1 = " << num1 << " , num2 = " << num2 << endl;
}
int main() {
// 显式传入参数值7
fun(7);
// 控制台暂停
system("pause");
return 0;
}
执行结果 :
num = 5
num = 7
请按任意键继续. . .
今天的文章函数参数的传递方式_定义函数时必须确定参数个数「建议收藏」分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/81521.html