首页/新闻资讯/正文详情

C++学习日记 Day3:函数高级(默认参数、占位参数、函数重载)

发布时间:2026/9/23 7:21:34 来源:云帆数科 栏目:资讯中心
C++学习日记 Day3:函数高级(默认参数、占位参数、函数重载)
## 今天学了什么今天学习C函数默认参数、占位参数及函数重载的语法和规则。## 函数的默认参数函数形参列表的形参可以有默认值语法 返回类型 函数名参数默认值{}。#includeiostream using namespace std; //函数的默认参数 int func(int a, int b 10,int c20) { return a bc; } //默认参数声明实现只能有一个 如果在实现里实现必须在main函数前面 int func02(int a, int b); int func02(int a 10, int b 1) { return a b; } int main() { cout func 的运行结果 func(1,1,1)endl; cout func02 的运行结果 func02() endl; return 0; }通过对上述代码进行调试发现- 设置默认参数后传入新值会替换默认值不传入新值则会使用默认值- 默认参数后面的参数也必须有默认值前面没有。即默认参数必须从右往左连续定义否则会报错- 函数声明有默认参数则函数实现就不能有默认参数反正也是。并且如果默认参数在实现函数的实现必须在main函数前否则默认参数设置无效。## 函数的占位参数语法返回值类型 函数名数据类型{}参数只有类型不写变量名作用是占位调用函数时必须填补该位置占位参数可以设置默认值。int func03(int a, int) //占位参数可以有默认值 例int func03(int a, int10){a a 1;return a;}## 函数重载** 作用同一个作用域下函数名可以相同依靠参数区分函数提高复用性。**** 函数重载条件**同一个作用域同一个函数名函数参数的类型不同/个数不同/顺序不同。**重点函数的返回值不同不能作为重载条件原因调用函数时编译器只看传入参数可以不接收返回值编译器无法仅靠返回值区分调用函数。**#includeiostream using namespace std; int func(int a, int b ,int c) { return a b c; } //函数重载 类型不同 int func(float a) { return a 100; } //函数重载 个数不同 int func(int a, int b) { return a 2 b; } //函数重载 顺序不同 int func(int a, double b) { return a * b; } int func(double a, int b) { return a / b; } int main() { cout func 的运行结果 func(1,1,1)endl; cout func 重载函数的运行结果 func((float)1.0) endl; return 0; }## 引用作为重载条件当函数参数为引用时也有可重载的情况int a 和 const int a 可以构成重载传入变量左值调用void func04(int a);传入常量、字面量调用void func04(const int a);//引用作为重载条件 void func04(int a) { cout func(int a)调用 endl; } void func04(const int a) { cout func(const int a)调用 endl; } int main() { int i1; func04(i);//输出结果func(int a)调用 func04(2);//输出结果func(const int a)调用 return 0; }## 发现函数重载遇到默认参数坑二义性例①void funcint a,int b10{}②void func (int a) {}func(1);虽然满足函数重载的条件-参数个数不同但运行依旧错误。原因编译器在调用时发现①②两个 函数都能调用存在二义性导致运行出错。

相关推荐

Sigmoid位置环规划:Q16定点数在STM32F103上的FOC实现
Sigmoid位置环规划:Q16定点数在STM32F103上的FOC实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/23 7:21:28

大模型服务备案协议撰写与合规要点解析
大模型服务备案协议撰写与合规要点解析

1. 大模型服务备案的核心背景2023年8月,国内正式实施《生成式人工智能服务管理暂行办法》,要求所有提供生成式AI服务的企业完成备案手续。作为从业者,我完整经历了某金融行业知识大模型的备案全过程,发现服务协议是备案材料中最易… · 2026/9/23 7:21:22

SAP数据迁移与脱敏:SNP TDO工具实战解析
SAP数据迁移与脱敏:SNP TDO工具实战解析

1. SAP数据迁移与脱敏实战:SNP TDO工具深度解析在数字化转型浪潮中,企业核心系统的数据迁移与合规处理已成为技术团队必须面对的硬仗。作为全球ERP领域的领导者,SAP系统的升级、拆分或上云项目往往涉及海量业务数据的转移与重构。我曾参与过多… · 2026/9/23 7:21:22

HuggingFace Tokenizers 分词管线完全指南:Normalizer、Pre-tokenizer、Model、Post-processor 与 Decoder 全组件深度解析
HuggingFace Tokenizers 分词管线完全指南:Normalizer、Pre-tokenizer、Model、Post-processor 与 Decoder 全组件深度解析

HuggingFace Tokenizers 分词管线完全指南:Normalizer、Pre-tokenizer、Model、Post-processor 与 Decoder 全组件深度解析 【免费下载链接】AI-Research-SKILLs Comprehensive open-source library of AI research and engineering skills for any AI model. Packa… · 2026/9/23 8:06:52

网页开发入门:一文看懂HTML、CSS和JavaScript三件套
网页开发入门:一文看懂HTML、CSS和JavaScript三件套

不少人第一次接触网页开发,是被"HTMLCSSJS"这串字母劝退的。总觉得这是三套完全陌生的语言,还没开始学就已经觉得自己不行。但实际把它们拆开看,网页开发的核心并没有想象中那么高深。这篇文章我尽量用最直白的方式,把从… · 2026/9/23 8:06:52

GBrain Compiled Truth + Timeline 模式:可搜索大脑页面的双区架构与实现原理
GBrain Compiled Truth + Timeline 模式:可搜索大脑页面的双区架构与实现原理

GBrain Compiled Truth Timeline 模式:可搜索大脑页面的双区架构与实现原理 【免费下载链接】gbrain Garrys Opinionated OpenClaw/Hermes Agent Brain 项目地址: https://gitcode.com/gh_mirrors/gb/gbrain 导读 GBrain 的每张大脑页面(brain … · 2026/9/23 8:06:52

Eww 版本演进深度解读:从 0.3.0 到 0.6.0 的完整变更历史与源码印证
Eww 版本演进深度解读:从 0.3.0 到 0.6.0 的完整变更历史与源码印证

桌面应用 【免费下载链接】eww ElKowars wacky widgets 项目地址: https://gitcode.com/gh_mirrors/ew/eww 点击查看 免费下载 本篇技术指南以仓库根目录下的 CHANGELOG.md 为主体,系统梳理 Eww(ElKowars Wacky Widgets)自 0.3.0… · 2026/9/23 8:06:52

零基础别瞎报!华为这两个认证,新手报考纯浪费钱
零基础别瞎报!华为这两个认证,新手报考纯浪费钱

很多人考证的第一步,就走错了方向。 刚接触网络方向的朋友,一听说华为认证含金量高,就一股脑扎进去报名备考。 HCIA初级、HCIP中级、HCIE专家级,三级认证体系名词看得新手眼花缭乱、无从分辨。加上全网铺天盖地的“持证高薪、证书… · 2026/9/23 8:06:39

Python Pygame入门:从零开发2D飞机大战游戏
Python Pygame入门:从零开发2D飞机大战游戏

1. 项目概述作为一个Python初学者,开发一个简单的2D游戏是检验学习成果的绝佳方式。打飞机游戏(也称为飞机大战)因其规则简单、逻辑清晰而成为入门游戏开发的首选项目。这个项目将带你从零开始,使用Python的Pygame库构建一个完整的… · 2026/9/23 8:06:39

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码