C++ 默认参数和占位符
通常情况下,函数在调用时,形参从实参那里取得值。对于多次调用同一函数的同一 实参时,C++给出了更简单的处理办法。给形参以默认值,这样就不用从实参那里取值了。
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>using namespace std;// c++中 允许给一个形参 默认设置为一个值, 当外部调用函数的时候,如果不传递参数的,那么x就是100
//如果外部传递实参,那么x的值就是实参的值int func1(int x, int = 0) // 这里的 int = 0 是一个占位符,没有实际意义
{cout << "func1: x = " << x << endl;return 0;
}//求一个 立方体的体积
//默认参数,必须是从右向左设置, 只有有一个参数是带有默认参数 的,那么他右边的所有参数都必须有默认值。
int volume(int len, int width, int high = 30)
{return len * width * high;
}int main(void)
{int x = 10;int v = 0;func1(x); // 传递一个参数func1(x , v); // 传递两个参数,v 传到 func1函数中没有意义, int = 0 是一个占位符int len = 10;int w = 20;int h = 30;v = volume(len, w, h); // 传递三个参数cout << "v = " << v << endl;v = volume(len, w); // 传递两个参数cout << "v = " << v << endl;return 0;
}
错误函数写法
float volume(float length, float weight = 4,float high){ // 错误的函数写法return length*weight*high;}
在默认参数规则,如果默认参数出现,那么右边的都必须有默认参数,例如当 float weight 给予默认值,float high 没有赋值的话,运行就会报错
int func1(int x, int = 0)
{cout << "func1: x = " << x << endl;return 0;
}
函数占位参数
占位参数只有参数类型声明,⽽而没有参数名声明
一般情况下,在函数体内部⽆无法使⽤用占位参数
注:可以将占位参数与默认参数结合起来使⽤
意义
为以后程序的扩展留下线索
兼容C语⾔言程序中可能出现的不规范写法
总结:
默认参数规则 :
只有参数列表后面部分的参数才可以提供默认参数值
一旦在一个函数调用中开始使用默认参数值,那么这个参数后的所有参 数都必须使用默认参数值
如果默认参数和占位参数在一起,都能调⽤用起来
C++ 默认参数和占位符相关推荐
- 【C++笔记】函数的用法:函数的默认参数、占位参数、函数重载
函数的默认参数 在C++中,函数的形参列表中的形参是可以有默认值的. 语法:返回值类型 函数名 (参数=默认值){} int func(int a, int b = 20, int c = 30){r ...
- C++ 函数默认参数和占位参数
函数默认值 函数的默认参数从左向右,如果一个参数设置了默认参数,那么这个参数之后的参数都必须设置默认参数. 如果函数声明和函数定义分开写,函数声明和函数定义不能同时设置默认参数. c++在声明函数时, ...
- Python——使用“_”下划线作为参数的占位符
在Python中,函数可以返回多个参数,于是我们可以使用"_"下划线作用不需要使用的多余参数的占位符:
- c++中的引用,默认参数,占位参数
c++中新增了一种复合类型---引用变量,引用是已定义的变量的别名.例如,如果将b作为a变量的引用,则可以交替使用rats和rodents来表示该变量.那么这种别名有什么作用呢?引用变量的主要用途是用 ...
- c++学习笔记内联函数,函数重载,默认参数
c++学习笔记内联函数,函数重载,默认参数 1 inline内联函数 C++中的const常量可以替代宏常数定义,如: const int A = 3; #define A 3 C++中是否有解决 ...
- c语言 结构体 占位符,深入理解结构体中占位符的用法
深入理解结构体中占位符的用法 复制代码 代码如下: typedef union { struct x{ char a1 : 2; char b1 : 3; char c1 : 3; }x1; char ...
- android 多个占位符,Android多语言支持:由于占位符计数不同导致的字符串格式问题...
我正在制作一个法语Android应用程序,我正在努力支持英语. 我使用"占位符"来格式化我的字符串,因此我可以将它们调整为男性和女性用户.例如,我的strings.xml文件中 ...
- Hibernate占位符问题[use named parameters or JPA-style positional parameters instead.]
hibernate 4.1之后对于HQL中查询参数的占位符做了改进,如果仍然用老式的占位符会有类似如下的告警信息: [main] WARN [org.hibernate.hql.internal.as ...
- mysql jdbc 占位符_JDBC中占位符报错是什么鬼啊
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.sql.*; import org.junit.Test; /** * 测试sql注入问题 * @author Wangjiany ...
最新文章
- 人工智能的人文主义,如何让AI更有爱
- 行业洞察驱动安全防御严峻安全挑战迎刃而解
- 土耳其电信与华为签署5G协议谅解备忘录
- 打开慢_苹果手机聊天回复特别慢?打开这个开关,1分钟打200字都没问题
- JS---Math.Random()*10--[0,10)随机变颜色
- pytorch中获取模型参数
- 如何使用PHP开发高效的WEB系统
- 181222每日一句
- 拨号保护,网络电话,保护隐私,匿名通话
- wifi数据包解析_WiFi通讯协议详解
- DeBank和非小号网站的数据分析-实习工作小结
- 什么样的固定资产管理系统才能满足企业需求
- STM32 ME909 调试难点
- np.isfinite_带有Python示例的math.isfinite()方法
- Acrobat Reader XI启动后自动关闭的分析
- 如何查看Linux磁盘空间大小
- 电子元件在电路的作用
- 2020年64种最佳免费WordPress博客主题
- 初级计算机硬件试题,初级网络管理员计算机硬件基础知识考试卷模拟考^试题...
- Spark资源调度机制源码分析--基于spreadOutApps及非spreadOutApps两种资源调度算法