C++函数形参默认值误区
2018-03-22 13:51
288 查看
在写C++代码时,用到形参默认值的时候必须要注意两个要点:
一、有默认值形参必须放在形参列表的末尾
例如:
之所以要将有默认值的形参必须放在形参列表的末尾,是因为不这样做的话在调用函数时就不能跳过有默认值的形参给其他形参赋值。
例如:
二、不允许多次声明有默认值形参
在同一个作用域内,不允许在同一个函数的多个声明中对同一个参数的默认值重复定义,即使前后定义的值相同也不行。
一般来说,有两种设置默认值形参的方法:
1、在定义时设置(函数定义时默认声明函数);
2、在声明时设置;
选择了以上两种方式中的任意一种,即不可以再使用另一种。
例如:
当工程很大时,不允许多次声明有默认值形参可能会在观察代码时产生一些混乱,这时可以注释来说明形参:
一、有默认值形参必须放在形参列表的末尾
例如:
int fa(int x, int y = 5, int z = 5); //正确 int fb(int x = 5, int y = 5, int z); //错误 int fc(int x = 5, int y, int z = 5); //错误
之所以要将有默认值的形参必须放在形参列表的末尾,是因为不这样做的话在调用函数时就不能跳过有默认值的形参给其他形参赋值。
例如:
//假设有 int f(int a = 5, int b, int c = 10, int d){...} //调用函数f() f(2, 4); //试图给b, d赋值,实际上却是给a, b赋值
二、不允许多次声明有默认值形参
在同一个作用域内,不允许在同一个函数的多个声明中对同一个参数的默认值重复定义,即使前后定义的值相同也不行。
一般来说,有两种设置默认值形参的方法:
1、在定义时设置(函数定义时默认声明函数);
2、在声明时设置;
选择了以上两种方式中的任意一种,即不可以再使用另一种。
例如:
//方式一: int add(int x = 5, int y = 10); int add(int x, int y){...} //方式二: int add(int x, int y); int add(int x = 5, int y = 10){...}
当工程很大时,不允许多次声明有默认值形参可能会在观察代码时产生一些混乱,这时可以注释来说明形参:
int add(int x = 5, int y = 10); int add(int x /* =5 */, int y /* =10 */){...}
相关文章推荐
- C++之内联函数inline、带默认形参值的函数
- c++-带默认形参值的函数
- C++ 中 实参值赋给形参变量的过程 和 函数运行结果返回主调函数 的过程
- C++学习笔记(3):const与&修饰函数形参的作用
- C++函数参数取默认值
- C++中const修饰函数形参,函数,函数返回值
- C++面向对象、const和指针混用、函数参数的默认值
- C++中数组名作为函数的形参和实参
- C++函数引用形参和非引用形参
- c++如何对结构体作为形参设置默认值
- C++ 带默认形参值的函数
- 函数形参默认值
- c++带默认值参数的函数
- C++基础2 引用 函数扩展: 默认值 占位符 指针 重载 类:引用类指针 声明实现分开写
- C++ -- 函数:引用形参
- 【C++总结】函数形参,返回const对象与非const对象,成员函数,函数指针
- C++函数系列篇:函数的默认值+带默认参数的函数
- C++中带默认值参数的函数
- C++中函数的数组形参
- c 和 c++ 中的 函数void形参和空形参的区别