C++入门基础教程:函数高级
Posted Zhi Zhao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++入门基础教程:函数高级相关的知识,希望对你有一定的参考价值。
目录
前言
博主通过对C++基础知识的总结,有望写出深入浅出的C++基础教程专栏,并分享给大家阅读,今后的一段时间我将持续更新C++入门系列博文,想学习C++的朋友可以关注我,希望大家有所收获。
一、函数默认参数
语法:返回值类型 函数名 (参数=默认值) { }
如果自己传入参数,就用自己的数据,如果没有,则用默认值。
int func(int a, int b = 20, int c = 30)
{
return a + b + c;
}
int main()
{
cout << func(10) << endl; // b、c有默认值
system("pause");
return 0;
}
注意事项:
(1)如果某个位置已经有了默认参数,那么从这个位置往后,从左到右都必须有默认值;
(2)如果函数声明有默认参数,函数实现就不能有默认参数,声明和实现只能是其中一个有默认参数。
二、函数占位参数
语法:返回值类型 函数名 (数据类型) { }
void func(int a, int)
{
cout << "this is func" << endl;
}
// 函数调用中的第二个实参必须传入一个整型数据
func(10,20);
三、函数重载
作用:函数名可以相同,提高复用性。
条件:
(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;
}
注意事项:
(1)引用作为重载的条件;
// 引用作为重载的条件
void func(int &a)
{
cout << "func(int &a)的调用" << endl;
}
void func(const int &a)
{
cout << "func(const int &a)的调用" << endl;
}
int a = 10;
func(a); // func(int &a)的调用
func(10); // func(const int &a)的调用
(2)函数重载碰到默认参数,出现二义性,编译器会报错。
// 函数重载碰到默认参数
void func2(int a, int b = 10)
{
cout << "func(int a, int b = 10)的调用" << endl;
}
void func2(int a)
{
cout << "func(int a)的调用" << endl;
}
func2(10); // 出现二义性,编译器会报错
结束语
大家的点赞和关注是博主最大的动力,博主所有博文中的代码文件都可分享给您(除了少量付费资源),如果您想要获取博文中的完整代码文件,可通过C币或积分下载,没有C币或积分的朋友可在关注、点赞和评论博文后,私信发送您的邮箱,我会在第一时间发送给您。博主后面会有更多的分享,敬请关注哦!
以上是关于C++入门基础教程:函数高级的主要内容,如果未能解决你的问题,请参考以下文章