[c++]默认参数
2024-08-30 18:02:03
=================默认参数==================
在函数声明时表明默认值,在函数定义时正常定义
void function(int a = 2)// 函数声明
void function(int a)//函数定义
{
//code....
在函数声明时表明默认值,在函数定义时正常定义
void function(int a = 2)// 函数声明
void function(int a)//函数定义
{
//code....
}
具体规则
1.默认参数在声明中给出或者在定义中给出(默认参数可以放在函数声明或者定义中,但只能放在二者之一)
2.形参的参数名可以省略 例如 void function(int =2)
3.默认声明后不得再次尝试声明来试图更改默认值
4.函数的参数的默认值只能从后向前设置 出现非默认的参数后 左方不得再次出现默认的参数(如果某个参数是默认参数,那么它后面的参数必须都是默认参数) 例如
void fun(int a = 1, int b, int c = 3, int d = 4);
上述函数声明错误 原因是a 和 b 的位置错误
而
void fun(int a, int b = 2, int c = 3, int d = 4);
则是正确的
5.函数重载时谨慎使用默认参数值
代码示例
class Test
{
public:
int func(int a)
{
return a;
}
int func(int a, int b = 1)
{
return a + b;
}
} ;
如果有这样的调用:
int main(void)
{
Test test;
int result = test.func(1);
getchar() ;
return 0 ;
}
会造成函数调用的二义性,引发报错.
6.赋值规则:
右边的使用默认了 左边才能使用默认值
7.重载还是使用默认参数?
一般来说如果函数的两个版本工作方式完全相同 使用默认参数
若果参数决定了的函数的工作方式截然不同 使用重载
最新文章
- 深入理解 Android 之 View 的绘制流程
- LeetCode Reverse String
- win7怎么显示隐藏文件夹
- 您的应用静态链接到的 OpenSSL 版本有多个安全漏洞。建议您尽快更新 OpenSSL
- 【vijos1266】搜集环盖
- MVC2.0前置
- Oracle数据库定时任务配置和日志执行情况查询
- python 操作word文档
- jQuery鼠标事件
- [HDU 1806] Frequent values
- java_method_获取数据库中列表的第一行第一列的int值
- PYTHON线程知识再研习C---线程互斥锁
- CentOS中配置SoftWareRaid磁盘冗余阵列
- 用windbg显示特定进程虚拟地址的方法
- ShellExecute使用详解
- [UWP 自定义控件]了解模板化控件(7):支持Command
- QModelIndex 与 QStandardItem互转
- 20162327WJH实验四——图的实现与应用
- Chrome DevTools的15个使用技巧(译)
- RF内建的变量