缺省参数的声明和定义

首先,函数缺省参数不能同时出现在声明和定义中,如出现则报错:
 

声明和定义中同时出现缺省参数

ctrl+b,编译报错,提示 “test":重定义默认参数:参数1 

编译报错

当函数的声明和定义中都出现了缺省参数,假如在声明中,缺省参数int b = 0,而在定义中,缺省参数int b = 100,此时编译器不知道是听谁的,是声明中的0呢?还是定义中的100呢?因此,缺省参数不能同时存在与声明和定义中。


那么,假如声明和定义分离,那么缺省参数是应该存在与哪个?

假设存在于定义中:

缺省参数存在于定义中

ctrl+b,编译报错:

 

函数的声明和定义是在链接阶段才会合在一起,在编译阶段,.h 和 .cpp是在各走各的。在编译阶段,在头文件.h 中,test函数的参数是(int a, int b),编译器并不知道我们在定义中将参数的缺省值设为0,因此会发生编译报错。


假设存在于声明中:

缺省参数存在于声明中

ctrl + b,正常编译,没有报错:

运行也正常:

test(0,100) 对于编译器来说就正常传参数。

而test(0),由于我们在声明中设置了缺省值,编译器将test(0)处理为test(0,0),因此编译期间程序正常编译,没有报错。


总结:
        函数的缺省参数应该存在与声明中。

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

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

相关文章

第10关:基数排序

任务要求参考答案问答98 任务描述相关知识 基数排序算法编程要求测试说明 任务描述 本关任务:实现基数排序算法,并将乱序数列变成升序。 相关知识 为了完成本关任务,你需要掌握:1.基数排序算法。 基数排序算法 基数排序是按…

Node.js下载安装教程

一、下载安装包 1、百度网盘自提链接: 链接:https://pan.baidu.com/s/1Bbw895MtUgjlfZylPHCCxw 提取码:x89v 2、进入官网下载 https://nodejs.org/zh-cn/download/ 选择对应版本,我这里选的windows64位版本 二、安装程序 1、…

使用shell快速查看电脑曾经连接过的WiFi密码

此方法只能查看以前连接过的wifi名称和对应的密码 查看连接过的WiFi名称netsh wlan show profiles查看具体的WiFi名称netsh wlan show profile name"你的wifi名称" keyclear

vivado综合分析与收敛技巧1

使用细化视图对 RTL 进行最优化 完成任意实现步骤后使用 report_timing 、 report_timing_summary 或 report_design_analysis 分析时序结果时, 您必须审查关键路径结构 , 了解是否可通过修改 RTL 、使用综合属性或者使用其他综合选项来更有效地将…

LeetCode.24两两交换链表中的节点

LeetCode.24两两交换链表中的节点 1.问题描述2.解题思路3.代码 1.问题描述 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示…

雷达公式实现(matlab)

雷达公式实现 代码来源:《雷达系统分析与设计(MATLAB版)(第三版)》 function [snr] radar_eq(pt,freq,g,sigma,b,nf,loss,range) % This program implements Eq.(1.63) %% Inputs:% pt——峰值功率,W% freq——雷达中心频率,Hz% g——天线…

IntelliJ IDEA 中有什么让你相见恨晚的技巧

一、条件断点 循环中经常用到这个技巧,比如:遍历1个大List的过程中,想让断点停在某个特定值。 参考上图,在断点的位置,右击断点旁边的小红点,会出来一个界面,在Condition这里填入断点条件即可&…

AI旅游:旅游行业的人工智能成熟艺术适应从实践到表现报告

今天分享的是AI系列深度研究报告:《AI旅游:旅游行业的人工智能成熟艺术适应从实践到表现报告》。 (报告出品方:accenture) 报告共计:25页 旅行还没有充分利用AI所能做的一 而旅游业比两年前强多了。公司…

如何通过Portal实现消息集成

在数字化时代浪潮下,信息的流通与交互已变得至关重要,不论是在企业内部日常协作,还是与外部客户的紧密沟通,信息的快速、准确、实时传递都成为了确保业务顺畅进行的关键因素、决策精准的核心要素。 为了满足这种日益增长的需求&a…

flask web开发学习之初识flask(一)

一、概念 flask是一个使用python编写的轻量级web框架,作者为Armin Ronacher(中文名:阿尔敏罗纳彻),它广泛被应用于web开发和API。flask提供了简洁而灵活地方式来构建web应用,它不会强加太多约束&#xff0…

PyCharm简介与安装

pyCharm的作用 PyCharm是一种Python的集成开发环境,带有一整套可以帮助用户在使用Python语言开发时提高效率的工具 pyCharm的集成 pyCharm的分类 PyCharm的下载 网址:https://www.jetbrains.com/pycharm/download/#sectionwindows PyCharm的安装

第五届全国高校计算机能力挑战赛-程序设计挑战赛(C语言模拟题)

1、已有定义“int a[10]{1,2},i0;”,下面语句中与“ a[i]a[i1],i;”等价的是()。 A. a[i]a[i1]; B. a[i]a[i]; C. a[i]a[i1]; D. i,a[i-1]a[i]; 2、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是()。 A. 7和5 …

3D打印报价系统

一款3d打印报价系统不仅可以展示三维模型,还能自动计算模型的相关信息,如面积、体积和尺寸信息。 用户上传三维模型后,系统会自动为其生成一个报价页面。在这个页面上,用户可以看到他们模型的所有相关信息,包括面积、体…

常用的系统播放器——MediaPlayer生命周期

常用的系统播放器——MediaPlayer 状态图以及生命周期 Idle状态、End状态、Error状态 MediaPlayer创建实例或者调用reset()后就处于Idle状态,即就绪。 任意时刻调用release()就会进入End 当运行过程中出错&#xf…

鼎捷副总裁谢丽霞:从四大趋势来看,数智时代企业如何加速研发创新

目录 导读 01 研发创新 势不可挡 ① 从逆向设计走向正向设计 ② 从专业协助走向全面协同 ③ 从单点场景走向业务闭环 ④ 从知识管理走向知识工程 02 鼎捷雅典娜 数智驱动企业新未来 03 鼎捷PLM 赋能企业研发创新 导读 研发,企业长青的必备源动能。如何在…

孩子写作业用的护眼灯哪种好?适合考研的护眼台灯推荐

随着现在小孩子的近视率越来越高,全国中小学生近视比率占大多数,许多家长也开始为孩子的健康成长而担忧,这时很多家长就会选择护眼台灯来为孩子保驾护航。但面对市面上五花八门的台灯品牌,各式各样的台灯许多家长却乱了阵脚&#…

android viewpager 禁止滑动

android viewpager 禁止滑动 前言一、viewpager 禁止滑动是什么,有现成方法吗?二、使用setOnTouchListener三、使用自定义viewpager总结 前言 本文介绍了本人有一个相关的需求需要实现这一功能,在过程中发现自己之前没做过,然后记…

服务器运行情况及线上排查问题常用命令

一、top命令 指令行: top返回: 返回分为两部分 (一)系统概览,见图知意 以下是几个需要注意的参数 1、load average: 系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分…

MES系统数字化看板:生产过程透明化与优化

在当今的制造业中,实现生产过程的透明化和优化已成为企业持续发展的关键。MES系统(制造执行系统)作为实现这一目标的重要工具,其数字化看板功能在生产现场管理中发挥着越来越重要的作用。 一、MES系统的基本概念与功能 MES系统是…

Pod控制器简介,ReplicaSet、Deployment、HPA三种处理无状态pod应用的控制器介绍

目录 一.Pod控制器简介 二.ReplicaSet(简写rs) 1.简介 (1)主要功能 (2)rs较完整参数解释 2.创建和删除 (1)创建 (2)删除 3.扩容和缩容 &#xff08…