缺省参数!C++教你如何成为一名优秀的舔狗

news2024/11/24 22:26:38

在这里插入图片描述

  • 👑专栏内容:C++学习笔记
  • ⛪个人主页:子夜的星的主页
  • 💕座右铭:日拱一卒,功不唐捐

目录

  • 一、前言
  • 二、缺省参数
    • 1、缺省参数的定义
    • 2、缺省参数的分类
      • Ⅰ、全缺省参数
      • Ⅱ、半缺省参数
  • 三、注意事项
    • 1、直给中间的参数传参
    • 2、间隔着给缺省参数
    • 3、声明和定义中同时出现
  • 四、写在后面


一、前言

何为舔狗?所谓舔狗就是当别人需要你的时候才会想起你,不需要你的时候,你是谁?舔狗就是没有选择时候的替代品。C++中的缺省参数,就是一位优秀的舔狗。接下来就让C++缺省参数教教我们如何成为一名优秀的舔狗。

在这里插入图片描述

二、缺省参数

1、缺省参数的定义

缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参。

缺省参数是C++在C的基础上新增的一种语法功能。C语言中我们定义的函数中带有大量需要传参的地方,每次调用都会重写这些值,而缺省参数则为很少会进行修改的地方提供了方便。 同时缺省值必须是常量或者全局变量。
在这里插入图片描述
下面举个例子:

void Func(int a = 0)
{
 cout<<a<<endl;
}
int main()
{
 Func();     
 Func(10);   
return 0;
}
  • (1)没有传参时,使用参数的默认值(没有其他人追时,选择舔狗)
  • (2)传参时,使用指定的实参(有人追时,忽略舔狗)

2、缺省参数的分类

Ⅰ、全缺省参数

全缺省参数,顾名思义,就是全部的变量都有对应的默认值。

换句话说,就是这个函数生活的每个地方中,都有舔狗在舔她。

在这里插入图片描述

void Func(int a = 10, int b = 20, int c = 30)
 {
     cout<<"a = "<<a<<endl;
     cout<<"b = "<<b<<endl;
     cout<<"c = "<<c<<endl;
 }

Ⅱ、半缺省参数

半缺省参数就是部分的变量有对应的默认值,而有些变量并没有默认值。
通俗点说就是,有的地方有舔狗,有点地方没有舔狗。

void Func(int a, int b = 10, int c = 20)
 {
     cout<<"a = "<<a<<endl;
     cout<<"b = "<<b<<endl;
     cout<<"c = "<<c<<endl;
 }

三、注意事项

1、直给中间的参数传参

这种是绝对不行的!参数传递的规定就是按从左往右传递的。不能跳过一个参数给另外一个参数传参。
不行的话,我就以身试法来举个例子:

#include<iostream>
using namespace std;
void Fun(int a = 10, int b = 20, int c = 30)
{
	cout<< a + b + c;
}
int main()
{
	Fun(30,,20);
	return 0;
}

在这里插入图片描述

2、间隔着给缺省参数

使用半缺省参数时,缺省值只能从右到左依次给出,不能间隔着给。
典型错误演示:

void Fun(int a = 10, int b , int c = 30)
{
	cout<< a + b + c;
}

在这里插入图片描述
正确的使用方式:

void Func(int a, int b = 10, int c = 20)
 {
     cout<<a+b+c;
 }

在这里插入图片描述

3、声明和定义中同时出现

缺省参数不能在函数声明和定义中同时出现!!!

典型错误:

  //a.h
  void Func(int a = 10);
  // a.cpp
  void Func(int a = 20)
 {
 	//内容
 }

如果生命与定义位置同时出现,恰巧两个位置提供的值不同,那编译器就无法确定到底该用那个缺省值。

四、写在后面

在这里插入图片描述

生活即炼狱,你我都是这个世界的舔狗。想要就去追求,就算不去舔,也没人会在乎舔狗的快乐与忧伤。就算舔失败了,也不过是在本就失败的人生中,再添上无伤大雅的一笔。

当然,我们更应该去尝试做自己的舔狗。即便道阻且长,仍要不屈不挠,兢兢业业地面对每个不确定的新一天。当缺省值通过努力,变为传参值时,他的命运也将会发生改变。

加油,各位缺省参数们!!

在这里插入图片描述

📢📢📢📢📢📢
💗 你正在阅读 【子夜的星】 的 C++笔记
👍 阅读完毕,可以点点小手赞一下
🌻 发现错误,直接评论区中帮我指正吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/168317.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker中的容器命令

1、新建启动容器 docker run 镜像名 参数&#xff1a; -it 启动前台一个交互的终端 --name 启动容器后&#xff0c;赋予容器一个名字 -d: 后台运行容器&#xff0c;并返回容器ID&#xff0c;也即启动守护式容器&#xff1b; -P: 随机端口映射&#xff1b; -p: 指定端口映…

Svelte框架实现表格协同文档

首先&#xff0c;从框架搭建上,本篇示例采用当下流行的前后端分离的开发方式&#xff0c;前端使用npm作为脚手架搭建Svelte框架。 后端使用Java的SpringBoot作为后端框架。 首先&#xff0c;介绍下在前端Svelte框架下搭建在线表格编辑器。 1、在pageage.json文件中引入相关资源…

ANR问题分析

ANR概念 anr是指应用程序无响应&#xff0c;Android系统对于一些事件需要在一定时间范围内完成&#xff0c;如果超过预定时间未能得到有效响应或者响应时间过长&#xff0c;都会造成anr。通常发生anr时&#xff0c;系统会弹出一个提示框&#xff0c;让用户知道&#xff0c;该程…

AppScan介绍和安装

第一节-AppScan介绍和安装 1.简介 Appscan 10中文版是是全新网络安全漏洞扫描软件&#xff0c;软件可以直接可以对OS命令、SSRF和XXE攻击等漏洞进行检测&#xff0c;使得漏洞检测更加容易&#xff0c;提高漏洞的扫描效率。软件同时支持动态、静态、互动分析三种不同的测试功能…

OVN实验----NAT

概述 在L2互通、L3互通实验基础上通过NAT实现访问公网。 架构图如下&#xff0c; 这里两台逻辑路由器LR1和GLR是通过一台逻辑交换机LSjoin互连的&#xff0c; GLR和物理网络设备通过LSlocal相连。 物理拓扑 如上一个实验OVN实验----L2互通 逻辑拓扑 配置 开始实验前先检查…

设计模式之装饰者模式

装饰者模式 定义 先上定义&#xff1a;指在不改变现有对象结构的情况下&#xff0c;动态地给该对象增加一些职责&#xff08;即增加其额外功能&#xff09;的模式。 优缺点 优点&#xff1a; 1&#xff0c;装饰器是继承的有力补充&#xff0c;比继承灵活&#xff0c;在不改…

【进阶C语言】文件操作

文章目录一.文件1.文件的功能2.文件的分类3.文件路径绝对路径相对路径4.文件信息区5.文件缓冲区6.流的概念7.输入输出二.文件函数1.打开与关闭文件打开文件——fopen返回类型参数关闭文件——fclose返回类型参数2. 顺序读写1.输入输出字符输入字符函数——fgetc返回类型函数参数…

新享科技UniPro将敏捷理念数字化 助力企业迎接2023

2023年新年伊始&#xff0c;“复苏”和“希望”成了越来越多国内企业和消费者的直接感受&#xff0c;与此同时&#xff0c;国际经济也从疫情中缓慢“恢复”过来&#xff0c;特斯拉在中国区掀起了新一轮降价风潮&#xff0c;而行业“销冠”比亚迪却高调发布了百万级新车。如同晴…

websocket显示实时消息

websocket实现实时消息展示 前面介绍过websocket聊天功能的实现,不清楚的可以先看下 websocket实现在线聊天 https://blog.csdn.net/qq_51076413/article/details/124644500 之前发过websocket的相关使用和一对一聊天的demo代码&#xff0c;这里是针对上几篇文章的补充&#x…

Nacos服务注册与发现源码剖析

文章目录前提介绍Nacos源码下载Nacos客户端源码Spring Cloud Starter Nacos 源码Nacos服务端源码前提介绍 服务注册与发现作用主要是为了更好的管理众多的服务&#xff0c;不论Nacos还是Zookeeper、Eureka&#xff0c;作为注册中心都是为了解决以下两个问题&#xff1a; 屏蔽…

【论文写作】英文写作工具推荐及使用教程:DeepL(翻译) + EasyEssay(扩写) + QuillBot(改写润色)

文章目录一、DeepL二、EasyEssay2.1 润写2.2 扩写2.3 生成文章2.4 英文查重三、QuillBot一、DeepL DeepL官网 DeepL的主要作用是翻译&#xff0c;一开始我也是在B站上看到有人推荐用这款翻译工具的&#xff0c;抱着试一试的心态去用了一下&#xff0c;感觉翻译效果真的很不错&a…

【贪心】AcWing 803. 区间选点

905. 区间选点 文章目录题目描述输入格式&#xff1a;输出格式&#xff1a;数据范围输入样例输出样例方法&#xff1a;贪心解题思路代码复杂度分析&#xff1a;题目描述 给定 N 个闭区间 [ai,bi][a_i,b_i][ai​,bi​]&#xff0c;请你在数轴上选择尽量少的点&#xff0c;使得每…

利用时间序列预测电量,冷量和压缩空气量

利用时间序列预测电量&#xff0c;冷量和压缩空气量背景分析与思路代码结果一&#xff0c;电量预测二&#xff0c;冷量预测三&#xff0c;压缩空气预测调优一&#xff0c;电量预测(m6)二&#xff0c;冷量预测三&#xff0c;压缩空气预测背景 根据提供的数据&#xff0c;详见附…

企业开发项目【1】— — 流程、开发环境搭建模板

企业开发项目【1】— — 流程、开发环境搭建模板 以黑马的学成在线为例 1 项目背景 2 项目介绍 3 开发环境搭建 3.1 开发工具配置&#xff08;后端&#xff09; 3.1.1 Idea配置 环境编码 编译级别配置 project structure - 设置JDK版本和编译级别3. 自动导包设置 IDEA可以…

远距离车载高速网络通讯方案

一 车载网络的发展 随着电子、半导体和通讯等行业的快速发展&#xff0c;汽车智能化的诉求也愈发强烈。越来越多的传感器和处理器的应用推动了汽车的智能化和电气化&#xff0c;与此同时&#xff0c;也使得ECU&#xff08;电子控制单元&#xff09;的数量快速增加。随着自动驾…

基于“python+”潮汐、风驱动循环、风暴潮等海洋水动力模拟

ADCIRC是新一代海洋水动力计算模型&#xff0c;它采用了非结构三角形网格广义波动连续方程的设计&#xff0c;在提高计算精确度的同时还减小了计算时间。被广泛应用于&#xff1a;模拟潮汐和风驱动的循环、预测风暴潮和洪水和近岸海上作业等。 除此之外&#xff0c;ADCIRC也是我…

目前市场上比较好的oa办公系统企业管理软件有哪些?

行政小李拿着《疫情期间春节返乡填报单》在工位之间来回穿梭…… 财务小王把年终奖金和福利方法拿给老板签字…… 行政小李的和人事小赵回回都因为入职新人培训的事情扯皮…… 后勤小郑每次办公物资的整理都要做半天…… OA系统本就是为企业内部的员工沟通、工作效率提高、协作…

WebDAV之葫芦儿·派盘+BookxNote

BookxNote 支持WebDAV方式连接葫芦儿派盘。 BookxNote是全新设计的电子书阅读学习笔记软件,以不同的思维方式重塑我们的学习过程。一边阅读一边划重点,提供多种划重点笔记工具,包括直线、矩形、圆形、高亮文本,图片摘录。高亮的文本自动编辑为重点的批注内容,还可以对重点…

查看网站历史记录的2种办法,怎样查看网站历史记录?

有个想购买二手域名的朋友问小黑&#xff1a;如何查看网站历史记录&#xff1f;于是今天就分享查看网站历史记录的 2种办法&#xff1a;网站历史记录和快照。 如果你在下单之前想查一查域名以前做过些什么&#xff0c;有没有违禁记录&#xff0c;被惩罚过&#xff0c;被K过等等…

LeetCode082_82. 删除排序链表中的重复元素 II

LeetCode082_82. 删除排序链表中的重复元素 II 一、描述 给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,3,4,4,5] 输出&#xff1a;…