6.函数重载(重点)

1.函数重载是:允许函数名相同,这种现象叫函数重载

2.函数重载的作用:是为了方便使用函数名

3.函数重载的条件:同一个作用域,参数的个数不同,参数的顺序不同,参数的类型不同

//参数的个数不同
void func()
{
	cout << "func()" << endl;
}

void func(int a)
{
	cout << "func(int a)" << endl;
}

//参数的类型不同
void func(char c)
{
	cout << "func(char c)" << endl;
}
//参数的顺序不同
void func(int a, double b)
{
	cout << "func(int a, double b)" << endl;
}
void func(double b, int a)
{
	cout << "func(double b, int a)" << endl;
}

4.调用重载函数的注意:

严格的类型匹配,如果类型不匹配,那么尝试转换,转换成功就掉用,失败就报错

void test01()
{
	int a = 10;
	double b = 3.14;

	func();
	//func(b);// err double转换不了成为int或char
	func(a, b);
	func(b, a);
	char c = 'c';
	func(c);//char转换int成功,调用int参数的函数
}

5.函数重载和函数的默认参数一起使用,需要注意二义性问题

//函数重载和函的默认参数一起使用
void myfunc(int a, int b = 0)
{
	cout << "myfunc(int a, int b = 0)" << endl;
}

void myfunc(int a)
{
	cout << "myfunc(int a)" << endl;
}

void test02()
{
	//myfunc(10); err,二义性问题,不知道调用哪个函数
}

6.函数的返回值不作为函数重载的条件

编译器是通过你调用函数时,传入的参数来判断调用重载的哪个函数,我们调研函数时不需要写返回值,所以返回值不能成为函数重载的条件

参考资料

参考资料来源于黑马程序员等

posted @   CodeMagicianT  阅读(103)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示