【C++】函数提高

1.函数默认参数

在C++语法中,函数的形参列表中的形参是可以有默认值的。

语法返回值类型  函数名  (参数 = 默认值){ }

//1. 如果某个位置参数有默认值,那么从这个位置往后,从左向右,必须都要有默认值
int func(int a, int b = 10, int c = 10) 
{return a + b + c;
}//2. 如果函数声明有默认值,函数实现的时候就不能有默认参数int func2(int a = 10, int b = 10);int func2(int a, int b) 
{return a + b;
}int main() 
{cout << "ret = " << func(20, 20) << endl;cout << "ret = " << func2(100) << endl;system("pause");return 0;
}

2.函数占位参数

C++中函数的形参列表可以占位参数,用来做占位,调用函数时必须填补该位置

语法返回值类型  函数名  (数据类型) { }

//函数占位参数 ,占位参数也可以有默认参数
void func(int a, int) 
{cout << "this is func" << endl;
}int main() 
{func(10,10); //占位参数必须填补system("pause");return 0;
}

3.函数重载

3.1 函数重载概述

作用函数名可以相同,提高复用性

函数重载满足条件:1.同一个作用域下

                              2.函数名称相同

                              3.函数参数类型不同或者个数不同或者顺序不同 

注意函数的返回值不可以作为函数重载的条件 

//函数重载需要函数都在同一个作用域下
void func()
{cout << "func 的调用!" << endl;
}void func(int a)
{cout << "func (int a) 的调用!" << endl;
}void func(double a)
{cout << "func (double a)的调用!" << endl;
}void func(int a ,double b)
{cout << "func (int a ,double b) 的调用!" << endl;
}void func(double a ,int b)
{cout << "func (double a ,int b)的调用!" << endl;
}//函数返回值不可以作为函数重载条件//int func(double a, int b)//{//  cout << "func (double a ,int b)的调用!" << endl;//}int main() 
{func();func(10);func(3.14);func(10,3.14);func(3.14 , 10);system("pause");return 0;
}

3.2 函数重载注意事项

引用作为重载条件

函数重载碰到函数默认参数

//函数重载注意事项
//1、引用作为重载条件
void func(int &a)
{cout << "func (int &a) 调用 " << endl;//int &a = 10; 不合法
}
void func(const int &a)
{cout << "func (const int &a) 调用 " << endl;//const int &a = 10; 合法
}//2、函数重载碰到函数默认参数
void func2(int a, int b = 10)
{cout << "func2(int a, int b = 10) 调用" << endl;
}void func2(int a)
{cout << "func2(int a) 调用" << endl;
}int main() 
{int a = 10;func(a); //调用无constfunc(10);//调用有const//func2(10); //碰到默认参数产生歧义,需要避免system("pause");return 0;
}

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

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

相关文章

JRT人大金仓测试

之前基于IRIS导出的Sql脚本用JRT的导表脚本执行Sql语句在PostGreSql数据库把IRIS导出的库还原。并且试了模板设计器的打开和保存及打印功能。本次测试IRIS导出的Sql在人大金仓上还原数据库&#xff0c;并且测试模板设计器功能和打印。 首先碰到的一个坑是人大金仓把空串存成NU…

Log4j 输出日志到 TextArea JavaFX、Swing

前言 之前在自己开发一个软件的时候想着实现一个打印日志到控制台的功能&#xff0c;网上找了一大堆资料实在晦涩&#xff0c;不是看不懂就是运行一堆报错&#xff0c;截止前两分钟刚用第二种方式实现了这个功能&#xff0c;这也是咱 "独立实现" 解决问题的第一次&am…

【js逆向】scrapy基础

目录 一, 爬虫工程化 二, scrapy简介 三, Scrapy工作流程(重点) 四, scrapy安装 4.1 pip 安装 4.2 wheel安装 五, Scrapy实例 六, 自定义数据传输结构item 七, scrapy使用小总结 一, 爬虫工程化 在之前的学习中我们已经掌握了爬虫这门技术需要的大多数的技术点, 但是我…

LabVIEW传感器通用实验平台

LabVIEW传感器通用实验平台 介绍了基于LabVIEW的传感器实验平台的开发。该平台利用LabVIEW图形化编程语言和多参量数据采集卡&#xff0c;提供了一个交互性好、可扩充性强、使用灵活方便的传感器技术实验环境。 系统由硬件和软件两部分组成。硬件部分主要包括多通道数据采集卡…

代码随想录 Leetcode538. 把二叉搜索树转换为累加树

题目&#xff1a; 代码(首刷看解析 2024年1月31日&#xff09;&#xff1a; class Solution { public:int pre 0;TreeNode* convertBST(TreeNode* root) {if (!root) return nullptr;root->right convertBST(root->right);if (pre 0) {pre root->val;}else {root…

【百度Apollo】轨迹绘制:探索路径规划和可视化技术的应用

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《linux深造日志》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下…

2024.1.28 GNSS 学习笔记

1.基于 地球自转改正卫地距 以及 伪距码偏差 重构定位方程&#xff1a; 先验残差计算公式如下所示&#xff1a; 2.观测值如何定权&#xff1f;权重如何确定&#xff1f; 每个卫星的轨钟精度以及电离层模型修正后的误差都有差异&#xff0c;所以我们不能简单的将各个观测值等权…

Kafka-服务端-PartitionLeaderSelector、ReplicaStateMachine

PartitionLeaderSelector 通过对前面的分析可知&#xff0c;PartitionMachine将Leader副本选举、确定ISR集合的工作委托给了PartitionLeaderSelector接口实现&#xff0c;PartitionMachine可以专注于管理分区状态。这是策略模式的一种典型的应用场景。 图展示了PartitionLead…

房屋租赁系统-java

思维导图&#xff1a;业务逻辑 类的存放&#xff1a; 工具类 Utility package study.houserent.util; import java.util.*; /***/ public class Utility {//静态属性。。。private static Scanner scanner new Scanner(System.in);/*** 功能&#xff1a;读取键盘输入的一个菜单…

【行业应用-智慧零售】东胜物联餐饮门店智能叫号解决方案,为企业智能化升级管理服务

随着科技的不断进步&#xff0c;物联网设备已经广泛应用于各行各业&#xff0c;包括餐饮业。在餐饮门店的线下运营过程中&#xff0c;叫号系统是一项重要的设备需求。传统的叫号方式往往会消耗大量的人力和时间&#xff0c;而物联网技术为餐饮行业提供了一种更高效、智能化的解…

redis使用Big key的问题

文章目录 BigKey带来的问题业务场景具体现象解决思路 BigKey带来的问题 客户端执行命令的时延变大&#xff1a;对大Key进行的慢操作会导致后续的命令被阻塞&#xff0c;从而导致一系列慢查询。 引发操作阻塞&#xff1a;Redis内存达到maxmemory参数定义的上限引发操作阻塞或重…

前端Web开发

安装flask框架 pip install flask 导入flask模块 from flask import Flask 【可能遇到的问题】 出现了如下警告&#xff1a; WARNING: You are using pip version 21.2.4; however, version 22.0.4 is available.You should consider upgrading via the D:\Python\python…

德国布局离子阱量子计算机!德国电信与奥地利量子公司AQT达成合作

​内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 编辑丨慕一 编译/排版丨琳梦 璧园 深度好文&#xff1a;1000字丨8分钟阅读 近期&#xff0c;德国电信宣布&#xff0c;其子公司T-Systems与奥地利量子计算公司Alpine Quantum Technologies …

ubuntu gedit主题更改

ubuntu16.04 gedit 编辑器又有首选项如何设置主题 这里下载主题 将主题XML复制到 /usr/share/gtksourceview-3.0/styles 文件夹内&#xff1b; 使用gsettings 命令设置喜欢的配色方案&#xff0c;使用方式如下&#xff1a;(实测不带.xml后缀哦) gsettings set org.gnome.gedi…

电气防火限流式保护器在可燃性粉尘危害场所的作用

安科瑞戴婷 摘要&#xff1a;文章阐述了可燃性粉尘的特点及可燃性粉尘环境粉尘爆炸的危害性&#xff0c;结合国家现行的电气产品规范的要求&#xff0c;通过一个提取车间内部粉尘爆炸危险区域的电气设计实例&#xff0c;系统阐述了可燃性粉尘危险环境的分区原则、电气设备选型…

Kotlin快速入门系列11

Kotlin的集合 集合类 Java类库有一套相当完整的容器集合类用来持有对象。跟Java一样&#xff0c;集合类存放的都是对象的引用&#xff0c;而非对象本身(我们经常说的集合指的是集合中对象的引用)&#xff0c;Kotlin的集合类是在Java的集合类库基础上进行的优化&#xff0c;新引…

第九节HarmonyOS 常用基础组件21-ImageAnimator

1、描述 提供帧动画组件来实现逐帧播放图片的能力&#xff0c;可以配置需要播放的图片列表&#xff0c;每张图片可以配置时长。 2、接口 ImageAnimator() 3、属性 参数名 参数类型 描述 images Array<ImageFrameInfo> 设置图片帧信息集合&#xff0c;每一帧的帧…

人工智能与大数据:技术前沿与实践

在当今信息爆炸的时代&#xff0c;人工智能&#xff08;AI&#xff09;与大数据已经成为推动社会进步的重要力量。本文将探讨这两项技术的最新发展&#xff0c;以及如何将其应用于实践。 一、人工智能&#xff1a;超越人类的智慧 人工智能是指计算机系统所具备的智能&#xf…

Python实现avif图片转jpg格式并识别图片中的文字

文章目录 一、图片识别文字1、导包2、代码实现3、运行效果 二、avif格式图片转jpg格式1、导包2、代码实现3、运行效果4、注意事项 三、Python实现avif图片转jpg格式并识别文字全部代码 在做数据分析的时候有些数据是从图片上去获取的&#xff0c;这就需要去识别图片上的文字。P…

网站分享(实用)

文章目录 网站分享简介素材和资源问题解决学习网站 网站分享 简介 在开发网站或应用程序时&#xff0c;我们经常需要使用各种素材和资源来增强用户体验和界面设计。在这篇文章中&#xff0c;我将分享一些我个人认为非常好用的网站&#xff0c;它们提供了丰富的素材和资源&…