当前位置: 首页 > article >正文

c++学习第四讲---函数提高

1.函数默认参数:

在( )中将参数赋值,如果传值了,则用传入值,否则才用函数中默认参数。

例:

int func(int a, int b = 3, int c = 3)
{
	return a + b + c;
}
int main()
{
	cout << func(1, 2) << endl;//6
	return 0;
}

注:1.如果一个位置有了默认参数,那么之后的所有位置都要有默认参数。

int func(int a = 1, int b, int c = 3)//错误,a有默认参数后,其后参数都应该有默认参数
{
	return a + b + c;
}

2.声明和实现只能有一个有默认参数。

int func(int a = 1, int b = 2);
int func(int a = 1, int b = 2)//错误,重定义,声明和实现只能有一个有默认参数
{
	return a + b;
}

2.函数占位参数:

在函数( )中只有数据类型,没有变量名的变量称作函数占位参数。

且占位参数必须有值传入。

void func(int a, int)//int 即为占位参数
{
	cout << a << endl;
}
int main()
{
	func(10, 10);//有两个值,后面的传给占位参数
	return 0;
}

注:1.暂时用不到。
       2.占位参数也可以有默认参数。  (int =10)

3.函数重载

3.1.概念:

函数名称相同,提高复用性。

即根据传入的数据不同调用同名的不同函数。

3.2.满足条件:

(1)在同一个作用域下;

(2)函数名相同;

(3)函数参数类型不同,或者个数不同,或者顺序不同。

注:1.返回值不同不作为函数重载的条件;

       2.参数有无 const 算作不同类型。

例:

void func()
{
	cout << "func的调用1" << endl;
}
void func(int a)
{
	cout << "func的调用2" << endl;
}

3.3.注意事项:

1.引用作为重载条件:(有无 const )

void func(int& a)
{
	cout << "func(int& a)调用" << endl;
}
void func(const int& a)
{
	cout << "func(const int& a)调用" << endl;
}
int main()
{
	int a = 10;
	func(a);//调用(int& a)
	func(10);//调用(const int& a)
	return 0;
}

2.函数重载+默认参数:

void func(int a)
{
	cout << "func(int a)的调用" << endl;
}
void func(int a, int b = 10)
{
	cout << "func(int a)的调用" << endl;
}
int main()
{
	func(10);//错误,函数重载两种都可调用
	return 0;
}

结论:在函数重载中尽量不出现默认参数。


http://www.kler.cn/a/156754.html

相关文章:

  • 远离生成式AI大乱斗,SAS公司揭示亚太区千亿AI市场蓝图
  • 【插件】多断言 插件pytest-assume
  • SpringCloud学习笔记
  • [CKS] K8S NetworkPolicy Set Up
  • Python数据类型(一):bool布尔类型
  • K8资源之endpoint资源EP资源
  • 跟着Nature Communications学习Hisat-Trinity-PASA等分析流程
  • 在windows上使用多个版本的chrome(谷歌)浏览器
  • java语言中受检异常和非受检异常的区别是什么?
  • 免费百度SEO优化工具,百度SEO优化排名工具
  • 网络运维与网络安全 学习笔记2023.11.30
  • 基于Python Flask 的全流程全栈项目自己的实战心得
  • 《opencv实用探索·九》中值滤波简单理解
  • 鸿蒙开发:Stage模型开发-应用/组件级配置以及UIAbility组件初步使用【鸿蒙专栏-20】
  • informer辅助笔记:exp/exp_informer.py
  • 【2021研电赛】基于EAIDK310的视觉导航自动驾驶小车
  • 【C语言】扫雷小游戏初学者版
  • 网络调试助手 连接Onenet 多协议接入平台 TCP透传协议
  • 专业爬虫框架 -- scrapy初识及基本应用
  • C++继承(详解)
  • 聚焦数据库Serverless创新,就在2023亚马逊云科技re:Invent
  • 科技云报道:AI+PaaS,中国云计算市场迎来新“变量”?
  • React Native expo Android adb 调试出现 device not found 怎么办
  • springMVC实验(二)—调式工具APIFOX的使用
  • 物品领用管理软件哪家的好用?怎么让办公用品管理变得更加轻松高效?
  • 智能优化算法应用:基于海洋捕食者算法无线传感器网络(WSN)覆盖优化 - 附代码