栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++核心编程3——函数高级

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++核心编程3——函数高级

1. 函数默认参数

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

//调用函数时,如果不向形参赋值,则采用默认值,否则采用我们赋给形参的值
int func(int a = 10, int b = 2) 
{

}

//注意,如果某个形参已经有了默认参数,那么从这个形参开始往后的所有形参都必须有默认参数
int func2(int a, int b = 2, int c=10) //b有了默认参数,则位于b之后的c必须有默认参数
{

}

//函数声明和函数定义,只能有一个默认参数,不能重复设置
int func3(int a = 2, int b = 2);  //函数声明,a,b均已有默认参数

int func3(int a, int b)  //函数定义,因为声明中a,b有了默认参数,所以在定义的时候不能再次设置默认参数
{
	return a + b;
}

2. 函数占位参数

C++中函数形参列表中允许有占位参数,用来做占位,调用函数时必须填补该位置

//占位参数可以有默认值,如果不给占位参数设置默认值,则在调用的时候需要为其赋值
int func(int a = 10, int = 2) 
{
	return a;
}

3. 函数重载 3.1 函数重载概述

C++中函数名可以相同,提高复用性

 

//函数参数的个数不同、类型不同、顺序不同都会导致调用时选择的函数不同
int func(int a) 
{
	return 0;
}

int func(double a)
{
	return 0;
}

3.2 函数重载注意事项

3.2.1 函数重载在引用中

//引用在函数重载中
void func(int& a)  // int& a=1000是不合法的,因为引用只可以引用栈区或者堆区的数据,不能引用常量区的数据
{
	const << "调用func(int& a)" << endl;
}

void func(const int& a)  // const int& a=1000是合法的
{
	const << "调用func(const int& a)" << endl;
}


int main()
{
	int k = 1000;
	func(k); // 调用func(int& a),因为k是一个变量

	func(1000); // 调用func(const int& a),因为1000是一个常量

	return 0;
}

3.2.2 函数重载遇到默认参数时

//默认值在函数重载中
//以下代码在重载时会出错,调用函数func(10)时,编译器两个函数都可以调用,因此会报错
void func(int a)
{
	const << "调用func(int a)" << endl;
}

void func(int a,int b = 10)
{
	const << "调用func(int a, int b)" << endl;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/456788.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号