我是靠谱客的博主 含蓄小刺猬,最近开发中收集的这篇文章主要介绍c++默认参数、占位参数、函数重载,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

函数默认参数

函数占位参数

函数重载

函数重载注意事项


函数默认参数

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

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

#include <iostream>
using namespace std;
//函数的默认参数
//如果我们自己传入了数据,就用自己的数据,如果没有,那么就用默认值
//语法: 返回值类型 函数名 (形参 = 默认值){ }
int func(int a, int b =20, int c=30)
{
return a + b + c;
}
//注意事项:
//1、如果某个位置已经有了默认参数,那么从这个位置往后,从左到右都必须有默认参数
//int func2(int a = 10, int b, int c, int d)
//{
//	return a + b + c ;
//}
//2、如果函数声明有默认参数,函数实现就不能有默认参数
//声明和实现只能有一个有默认参数
int func2(int a = 10, int b = 10);
int func2(int a, int b)
{
return a + b;
}
int func3(int a , int b = 10);
int func3(int a =10, int b)
{
return a + b;
}
int main()
{
func(10);
cout << func(10,30) << endl;
cout << func2() << endl;
cout << func3() << endl;
}
//执行结果
70
20
20

重复两个注意事项:

1、如果某个位置已经有了默认参数,那么从这个位置往后,从左到右都必须有默认参数

2、函数声明和函数实现只能有一个有默认参数

函数占位参数

c++中函数的形参列表里面可以有占位参数,用来做占位,调用函数时必须填充该位置

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

#include <iostream>
using namespace std;
//占位参数
void func(int a , int = 0)
{
cout << "this is a func" << endl;
}
int main()
{
func(10, 10);
}

c++中占位参数的意义:

1、占位参数与默认参数结合起来使用,可以做到兼容旧版本代码,提高代码的规范性

2、可以以小的改动,进行代码移植等

函数重载

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

函数重载满足条件:

1、同一个作用域下

2、函数名称相同

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

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

#include <iostream>
using namespace std;
//函数重载 作用:提高复用性
//函数重载的满足条件
//1、在同一个作用域下
//2、函数名称相同
//3、函数参数类型不同,或者个数不同,或者顺序不同
void func()
{
cout << "function 调用" << endl;
}
void func(int a)
{
cout << "func(a) 调用" << endl;
}
void func(double b)
{
cout << "func(b) 调用" << endl;
}
void func(int a, int b)
{
cout << "func(int,int) 调用" << endl;
}
void func(int a,double b)
{
cout << "func(int,double) 调用" << endl;
}
//函数返回值不能作为函数重载的条件
//int func(int a, double b)
//{
//	cout << "func(int,double) 调用" << endl;
//}
int main()
{
func(3.14);
func(1,4);
func(10, 3.14);
return 0;
}
//执行结果
func(b) 调用
func(int,int) 调用
func(int,double) 调用

函数重载注意事项

1、引用作为重载条件

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

#include <iostream>
using namespace std;
//1、引用作为函数重载的条件
void fun(int& a)	//int &a = 10;
表示方法是不合法的
{
cout << "func(int &a)" << endl;
}
void fun(const int &a)
{
cout << "func(const int&a)"<< endl;
}
//2、函数重载碰到默认参数
void fun2(int a,int b = 10)
{
cout << "fun2的调用1"<< endl;
}
void fun2(int a)
{
cout << "fun2的调用2"<< endl;
}
int main()
{
int a = 10;
fun(a);
//调用无const
fun(10);
//调用有const
//fun2(10); 当函数重载碰到默认参数,出现二义性,尽量避免这种情况
return 0;
}
//执行结果
func(int &a)
func(const int&a)

最后

以上就是含蓄小刺猬为你收集整理的c++默认参数、占位参数、函数重载的全部内容,希望文章能够帮你解决c++默认参数、占位参数、函数重载所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部