【C++】函数参数扩展 ② ( 占位参数 | 占位参数规则 - 必须为占位参数传入实参 | 默认参数与占位参数结合使用 )

文章目录

  • 一、占位参数
    • 1、占位参数简介
    • 2、占位参数规则 - 必须为占位参数传入实参
  • 二、默认参数与占位参数结合使用
    • 1、结合用法
    • 2、代码示例 - 占位参数与默认参数结合用法


博客总结 :

  • 默认参数 : 在 声明 函数时 , 为 函数参数 定义一个默认值 ;
  • 默认参数规则 : " 默认参数 " 必须 定义在 参数列表 的 末尾 ;
  • 占位参数 : 只声明 参数类型 , 不声明 参数名 ;
  • 占位参数规则 : 占位参数 必须传入 实参值 ;




一、占位参数




1、占位参数简介


占位参数 概念 : 在 C++ 语言中 , " 占位参数 " 是一种特殊的 函数参数 , 用于在 函数 定义时 预留一个 参数位置 , 只声明 参数类型 , 不声明 参数名 ;

无法访问 : 由于 占位参数 没有 参数名称 , 函数 的 函数体 中 , 无法访问 占位参数 ;


占位参数作用 : " 占位参数 " 为以后得函数留下扩展空间 ;


2、占位参数规则 - 必须为占位参数传入实参


函数 占位参数 使用 : 如果为 函数 定义了 " 占位参数 " , 则使用函数时 , 必须为 占位参数 传入实参 , 否则少一个函数会报错 ;


在函数中 , 定义了 2 个普通参数 , 和 1 个占位参数 :

// 为函数设置占位参数
void fun(int num, int num1, int) {cout << "num = " << num << " , num1 = " << num1 << endl;
}

如果调用上述 fun 函数时 , 只传入两个普通参数 , 就会报错 :

    // 传入 2 个参数fun(1, 2);

报错信息如下 :

  • “fun”: 函数不接受 2 个参数
1>------ 已启动生成: 项目: HelloWorld, 配置: Debug Win32 ------
1>Hello.cpp
1>Y:\002_WorkSpace\002_VS\HelloWorld\HelloWorld\Hello.cpp(13,13): error C2660: “fun”: 函数不接受 2 个参数
1>Y:\002_WorkSpace\002_VS\HelloWorld\HelloWorld\Hello.cpp(7,6): message : 参见“fun”的声明
1>已完成生成项目“HelloWorld.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0==========

错误代码示例 :

// 导入标准 io 流头文件 其中定义了 std 命名空间
#include <iostream>
// 导入 std 命名空间
using namespace std;// 为函数设置占位参数
void fun(int num, int num1, int) {cout << "num = " << num << " , num1 = " << num1 << endl;
}int main() {// 传入 2 个参数fun(1, 2);// 传入 3 个参数fun(1, 2, 3);// 控制台暂停system("pause");return 0;
}

在这里插入图片描述





二、默认参数与占位参数结合使用




1、结合用法


一旦为 函数 定义了 " 占位参数 " , 则使用函数时 , 必须为 占位参数 传入实参 , 否则少一个函数会报错 ;

但是 占位符 并不是我们需要的参数 , 方法体中也无法访问到 ;

平时开发时 , 一直带着一个不需要的参数 , 没有意义 ;

这里就可以将 占位参数 与 默认参数 结合使用 ,


为 函数 最后一个 占位参数 设置 默认只 2 ;

// 为函数设置占位参数
void fun(int num, int num1, int = 2) {cout << "num = " << num << " , num1 = " << num1 << endl;
}

调用上述 fun 函数时 , 既可以传入 2 个参数 , 又可以传入 3 个参数 ;

  • 如果传入 2 个参数 , 则最后一个 占位参数 使用默认值 2 ;
  • 如果传入 3 个参数 , 则最后一个 占位参数 使用传入的值 3 ;
    // 传入 2 个参数fun(1, 2);// 传入 3 个参数fun(1, 2, 3);

不管 是否 传入 占位参数 , 占位参数 在函数体内 , 都不可访问 ;


2、代码示例 - 占位参数与默认参数结合用法


代码示例 :

// 导入标准 io 流头文件 其中定义了 std 命名空间
#include <iostream>
// 导入 std 命名空间
using namespace std;// 为函数设置占位参数
void fun(int num, int num1, int = 2) {cout << "num = " << num << " , num1 = " << num1 << endl;
}int main() {// 传入 2 个参数fun(1, 2);// 传入 3 个参数fun(1, 2, 3);// 控制台暂停system("pause");return 0;
}

执行结果 :

num = 1 , num1 = 2
num = 1 , num1 = 2
请按任意键继续. . .

在这里插入图片描述

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

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

相关文章

时序预测 | MATLAB实现TCN-GRU时间卷积门控循环单元时间序列预测

时序预测 | MATLAB实现TCN-GRU时间卷积门控循环单元时间序列预测 目录 时序预测 | MATLAB实现TCN-GRU时间卷积门控循环单元时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现TCN-GRU时间卷积门控循环单元时间序列预测&#xff1b; 2.运行环…

【工程实践】使用git clone 批量下载huggingface模型文件

前言 经常需要下载模型到服务器&#xff0c;使用git clone方法可以快速实现模型下载。 1.选定要下载的模型 以下载moka-ai/m3e-base为例&#xff0c;切换到Files and versions。 2.更改下载网页的url 如上图所示&#xff0c;当前要下载模型网页的url为&#xff1a; https://hu…

SpringMVC使用

文章目录 一.MVC基础概念1.MVC定义2.SpringMVC和MVC的关系 二.SpringMVC的使用1.RequestMapping2.获取参数1.获取单个参数2.传递对象3.后端参数重命名&#xff08;后端参数映射&#xff09;4.获取URL中参数PathVariable5.上传文件RequestPart6.获取Cookie/Session/header 3.返回…

数据可视化工具中的显眼包:奥威BI自带方案上阵

根据经验来看&#xff0c;BI数据可视化分析项目是由BI数据可视化工具和数据分析方案两大部分共同组成&#xff0c;且大多数时候方案都需从零开始&#xff0c;反复调整&#xff0c;会耗费大量时间精力成本。而奥威BI数据可视化工具别具匠心&#xff0c;将17年经验凝聚成标准化、…

算法训练 第一周

一、合并两个有序数组 本题给出了两个整数数组nums1和nums2&#xff0c;这两个数组均是非递减排列&#xff0c;要求我们将这两个数组合并成一个非递减排列的数组。题目中还要求我们把合并完的数组存储在nums1中&#xff0c;并且为了存储两个数组中全部的数据&#xff0c;nums1中…

VLAN间路由:单臂路由与三层交换

文章目录 一、定义二、实现方式单臂路由三层交换 三、单臂路由与三层路由优缺点对比四、常用命令 首先可以看下思维导图&#xff0c;以便更好的理解接下来的内容。 一、定义 VLAN间路由是一种网络配置方法&#xff0c;旨在实现不同虚拟局域网&#xff08;VLAN&#xff09;之…

[Android 四大组件] --- Service

1 service是什么 Service是Android系统中的四大组件之一&#xff0c;它是一种长生命周期的&#xff0c;没有可视化界面&#xff0c;运行于后台的一种服务程序。 2 service分类 3 service启动方式 3.1 startService显示启动 // AndroidManifest.xml<?xml version"1…

NPM 常用命令(二)

目录 1、npm bugs 1.1 配置 browser registry 2、npm cache 2.1 概要 2.2 详情 2.3 关于缓存设计的说明 2.4 配置 cache 3、 npm ci 3.1 描述 3.2 配置 install-strategy legacy-bundling global-style omit strict-peer-deps foreground-scripts ignore-s…

【C++入门】string类常用方法(万字详解)

目录 1.STL简介1.1什么是STL1.2STL的版本1.3STL的六大组件1.4STL的缺陷 2.string类的使用2.1C语言中的字符串2.2标准库中的string类2.3string类的常用接口说明 &#xff08;只讲解最常用的接口&#xff09;2.3.1string类对象的常见构造2.3.2 string类对象的容量操作2.3.3string…

Java8实战-总结17

Java8实战-总结17 引入流流操作中间操作终端操作使用流 小结 引入流 流操作 java.util.stream.Stream中的Stream接口定义了许多操作。它们可以分为两大类。再来看一下前面的例子&#xff1a; List<String> names menu.stream() //从菜单获得流 .filter(d -> d.get…

山西电力市场日前价格预测【2023-09-05】

日前价格预测 预测明日&#xff08;2023-09-05&#xff09;山西电力市场全天平均日前电价为262.11元/MWh。其中&#xff0c;最高日前电价为349.80元/MWh&#xff0c;预计出现在19:30。最低日前电价为0.00元/MWh&#xff0c;预计出现在11:45-14:15。 价差方向预测 1&#xff1a…

upload-labs靶场通关详解

文章目录 Pass-01Pass-02Pass-03Pass-04Pass-05Pass-06Pass-07Pass-08Pass-09Pass-10Pass-11Pass-12Pass-13Pass-14Pass-15Pass-16Pass-17Pass-18Pass-19Pass-20方法一&#xff08;文件夹名欺骗绕过&#xff09;方法二&#xff08;%00截断攻击&#xff09; Pass-21 Pass-01 绕过…

通过HFS低成本搭建NAS,并内网穿透实现公网访问

文章目录 前言1.下载安装cpolar1.1 设置HFS访客1.2 虚拟文件系统 2. 使用cpolar建立一条内网穿透数据隧道2.1 保留隧道2.2 隧道名称2.3 成功使用cpolar创建二级子域名访问本地hfs 总结 前言 云存储作为一个新概念&#xff0c;在前些年炒的火热&#xff0c;虽然伴随一系列黑天鹅…

LinkedList(4):多线程LinkedList 不安全情况

多线程不安全演示&#xff0c;线程越多&#xff0c;现象越明显&#xff0c;这边只启了四个线程。 package com.example.demo;import java.util.LinkedList; import java.util.UUID;public class LInkedListThread {public static void main(String[] args) {final LinkedList&…

Unity UI与粒子 层级问题Camera depth Sorting Layer Order in Layer RenderQueue

Unity游戏开发中&#xff0c;模型、界面、特效等&#xff0c;需要规划好layer的概念&#xff0c;涉及到摄像机&#xff08;Camera&#xff09;、画布&#xff08;Canvas&#xff09;、Shader等相关内容。 在 Unity 中&#xff0c;渲染顺序是由多个因素共同决定的&#xff0c;大…

[学习笔记] fhq Treap 平衡树

fhq Treap 也叫无旋Treap &#xff08;好像&#xff1f;我也不知道&#xff09; 反正我带旋 Treap 是不会滴&#xff0c;其他的平衡树也不会&#xff08;但是会平板电视&#xff09; fhq Treap 好写&#xff0c;码量小&#xff0c;缺点是常数比较大 定义 二叉搜索树 二叉搜…

【LeetCode】409. 最长回文串

409. 最长回文串&#xff08;简单&#xff09; 方法&#xff1a;哈希表 贪心 思路 不难发现&#xff0c;回文字符串一定是由 若干偶数个字符 至多一个奇数个字符 组成 。我们可以使用一个长度为 128 的 hash表来记录每一个字符的出现次数&#xff0c;当该字符出现了两次&am…

pycharm 下jupyter noteobook显示黑白图片不正常

背景现象&#xff1a; 1、显示一张黑白图片&#xff0c;颜色反过来了。 from IPython.display import display source Image.open(examples/images/forest_pruned.bmp) display(source) 2、原因&#xff1a; 是pycharm会在深色皮肤下默认反转jupyter notebook输出图片的颜…

面试如何回答弹性盒子布局这个问题呢?

在我们面试中如果被问道css方面的面试题 那么极有可能被问到的一道面试题就是弹性盒子&#xff0c;本篇文章通过一张图带你拿捏这道面试题。 1、首先需要说一说弹性盒子的基本概念&#xff1a;弹性盒子是一种用于网页布局中创建灵活和响应式设计的CSS布局模型。 2、其次需要说…

note_前端框架Vue的安装和简单入门(Windows 11)

1. Vue安装 (1) 下载安装node.js和npm # 下载msi安装包 https://nodejs.org/en# 点击安装包&#xff0c;按提示安装 # 默认安装nodejs, npm, 在线文档; PATH配置# 确认安装是否成功&#xff0c;在dos中输入 node -v # 验证nodejs是否安装成功 npm -v # 验证nodejs包管…