社区
C++ 语言
帖子详情
什么是重载函数?
xuewudejijie
2008-03-29 07:51:01
什么是重载函数?
...全文
24
1
打赏
收藏
什么是重载函数?
什么是重载函数?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kkkgho
2008-03-29
打赏
举报
回复
所谓函数重载是指同一个函数名可以对应着多个函数的实现。例如,可以给函数名add()定义多个函数实现,该函数的功能是求和,即求两个操作数的和。其中,一个函数实现是求两个int型数之和,另一个实现是求两个浮点型数之和,再一个实现是求两个复数的和。每种实现对应着一个函数体,这些函数的名字相同,但是函数的参数的类型不同。这就是函数重载的概念。函数重载在类和对象的应用尤其重要。
函数重载要求编译器能够唯一地确定调用一个函数时应执行哪个函数代码,即采用哪个函数实现。确定函数实现时,要求从函数参数的个数和类型上来区分。这就是说,进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。否则,将无法实现重载。
参数类型上不同的重载函数
下面举一个在参数类型不同的重载函数的例子:
#include <iostream.h>
int add(int, int);
double add(double, double);
void main()
{
cout<<add(5, 10)<<endl;
cout<<add(5.0, 10.5)endl;
}
int add(int x, int y)
{
return x+y;
}
double add(double a, double b)
{
return a+b;
}
该程序中,main()函数中调用相同名字add的两个函数,前边一个add()函数对应的是两个int型数求和的函数实现,而后边一个add()函数对应的是两个double型数求和的函数实现。这便是函数的重载。
以上程序输出结果为:
15
15.5
参数个数上不同的重载函数
下面举一个在参数个数上不相同的重载函数的例子:
#include <iostream.h>
int min(int a, int b);
int min(int a, int b, int c);
int min(int a, int b, int c, int d);
void main()
{
cout<<min(13, 5, 4, 9)<<endl;
cout<<min(-2, 8, 0)<<endl;
}
int min(int a, int b)
{
return a<b?a:b;
}
int min(int a, int b, int c)
{
int t = min(a, b);
return min(t,c);
}
int min(int a, int b, int c, int d)
{
int t1 = min(a, b);
int t2 = min(c, d);
return min(t1, t2);
}
该程序中出现了函数重载,函数名min对应有三个不同的实现,函数的区分依据参数个数不同,这里的三个函数实现中,参数个数分别为2,3和4,在调用函数时根据实参的个数来选取不同的函数实现。
函数重载在类和对象应用比较多,尤其是在类的多态性中。在以后我们将碰到更多的在类型不同的函数重载,尤其是在结合类的继承性和指针类型的不同,而这些都是我们以后用VC编程中经常要用到的。
注:关于重载一定要注意:重载函数的参数类型和参数个数一定要不同(即:要么参数的类型不同,要么参数的个数不同,要么参数的类型和个数都不同),否则,编译器就不知道该调用那个函数了。函数重载的概念在C++,C#中是一样的,但是语言的使用略有不同,此文中的举例代码说明了其原理
相关推荐
详解
函数
重载
。什么是
重载
?什么是编译和链接?什么是
函数
表?为什么c语言不能
重载
而c++能?
详解
函数
重载
,c++为什么能
重载
,什么是
函数
表,c++编译和链接的定义和发生过程
初识C++
函数
重载
文章目录
函数
重载
什么是
函数
重载
为什么要
函数
重载
函数
重载
中要注意的一些细节
函数
重载
与作用域
函数
匹配【
重载
确定】
重载
和const形参const_cast和
函数
重载
函数
重载
什么是
函数
重载
函数
重载
是指在同一作用域内,
函数
名相同而形参列表不同的一组
函数
。 编译器首先将调用的实参与
重载
集合中每一个
函数
的形参作比较,然后根据比较的结果决定调用哪一个
函数
。 为什么要
函数
重载
重载
函数
通常用来命名一组功能相似...
c++
函数
重载
、内联
函数
、引用、类与对象、构造/析构
函数
c++
函数
重载
、内联
函数
、引用、类与对象、构造/析构
函数
函数
重载
什么是
函数
重载
C++是如何实现
函数
重载
的参数的类型转换
重载
和隐藏extern "C"指针的const属性会影响
函数
重载
默认形参什么是默认形参默认形参的约束内联
函数
普通
函数
与内联
函数
内联
函数
的优缺点什么情况适合内联内联
函数
与宏
函数
的相同点与不同点显式内联和隐式内联引用什么是引用引用有哪些用处使用引用有哪些约束相比指针有哪些优点强制类型转换操作符别名面向对象和面向过程类和对象构造
函数
和析构
函数
函数
重载
什么是
函数
重载
同一作用域、
函数
名
c++运算符
重载
运算符
重载
什么是运算符
重载
友元
函数
重载
运算符类成员
函数
重载
运算符特殊运算符
重载
什么是运算符
重载
什么是运算符
重载
? 赋予运算符具有操作自定义类型数据功能 运算符
重载
的实质是什么? 运算符
重载
的实质本身就是
函数
调用 运算符
重载
函数
的写法 `
函数
返回值
函数
名(
函数
参数)`
函数
返回值 :运算完成后的值决定的 Complex
函数
名 : operator 加上
重载
运算符组成
函数
名 operator+ 参数 :看运算符的操作数,具体参数个数是要看你
重载
函数
形式是什么
c++
函数
重载
原理详解
函数
重载
目录: 什么是
函数
重载
? 演示代码: 代码分析: 为什么c++支持
重载
而C语言不支持
重载
? C++中能否将一个
函数
按照C的风格来编译? c++
函数
重载
底层处理 什么是
函数
重载
? C++允用同一
函数
名定义多个
函数
,而这些
函数
的参数个数和参数类型可以不相同。这就是
函数
重载
。即...
发帖
C++ 语言
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
6.3w+
社区成员
25.0w+
社区内容
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
帖子事件
创建了帖子
2008-03-29 07:51
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下