C++ 函数重载
【摘要】 @TOC 前言这篇文章将给大家介绍C++中的函数重载,函数重载在C++中是非常重要的一个概念希望大家能够好好理解。 一、什么是函数重载1.用同一个函数名定义不同的函数2.重载函数名字相同参数不同重载函数示例:下面三个函数构成了重载函数int fun(void){}int fun(int a,int b){}int fun(char *s){}注意点:1.函数的返回值不作为函数重载的依据。2....
@TOC
前言
这篇文章将给大家介绍C++中的函数重载,函数重载在C++中是非常重要的一个概念希望大家能够好好理解。
一、什么是函数重载
1.用同一个函数名定义不同的函数
2.重载函数名字相同参数不同
重载函数示例:
下面三个函数构成了重载函数
int fun(void)
{
}
int fun(int a,int b)
{
}
int fun(char *s)
{
}
注意点:1.函数的返回值不作为函数重载的依据。
2.重载函数的类型不同
3.重载函数在本质上是相互独立的函数
4.函数重载是由函数名和参数列表决定的
二、编译器怎么区分不同的重载函数
#include <iostream>
using namespace std;
void fun(int i)
{
printf("i = %d\n", i);
}
void fun(void)
{
printf("hello world\n");
}
int main()
{
fun(5);
fun();
return 0;
}
运行结果:
这个运行结果说明了编译器是能够区分出重载函数的,编译器可以通过函数的参数列表区分不同的重载函数。
三、重载函数的地址
上面我们说到重载函数的本质是不相同的函数,那么函数都不相同了地址肯定也是不同的。
重载函数无法通过函数名得到函数地址。
得到函数地址方法:使用函数指针
#include <iostream>
using namespace std;
void fun(int i)
{
cout << i << endl;
}
void fun(void)
{
cout << "hello" << endl;
}
int main()
{
void (*pf)(int i) = fun;
void (*pf1)(void) = fun;
cout << pf << endl;
cout << pf1 << endl;
return 0;
}
当函数指针指向函数时,根据函数指针的类型严格寻找对应的重载函数。
总结
函数重载通过函数参数列表区分不同的同名函数,重载函数的本质是不同的函数。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)