| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2588 人关注过本帖
标题:c++里面函数名可以相同??
只看楼主 加入收藏
newCpp
Rank: 5Rank: 5
来 自:火星
等 级:职业侠客
威 望:3
帖 子:256
专家分:375
注 册:2009-8-17
结帖率:97.83%
收藏
已结贴  问题点数:20 回复次数:10 
c++里面函数名可以相同??
#include <iostream>
using namespace std;
int main( )
{int max(int a,int b,int c); //函数声明
double max(double a,double b,double c); //函数声明
long max(long a,long b,long c); //函数声明
int i1,i2,i3,i;
cin>>i1>>i2>>i3; //输入3个整数
i=max(i1,i2,i3); //求3个整数中的最大者
cout<<″i_max=″<<i<<endl;
double d1,d2,d3,d;
cin>>d1>>d2>>d3; //输入3个双精度数
d=max(d1,d2,d3); //求3个双精度数中的最大者
cout<<″d_max=″<<d<<endl;
long g1,g2,g3,g;
cin>>g1>>g2>>g3; //输入3个长整数
g=max(g1,g2,g3); //求3个长整数中的最大者
cout<<″g_max=″<<g<<endl;
}
int max(int a,int b,int c) //定义求3个整数中的最大者的函数
{if(b>a) a=b;
if(c>a) a=c;
return a;
}
double max(double a,double b,double c) //定义求3个双精度数中的最大者的函数
{if(b>a) a=b;
if(c>a) a=c;
return a;
}
long max(long a,long b,long c) //定义求3个长整数中的最大者的函数
{if(b>a) a=b;
if(c>a) a=c;
return a;
}
这个程序里面有三个函数,但他们函数名都是一样的,怎么还能够运行
只能类型不一样而已,这是为什么啊!!
搜索更多相关主题的帖子: 声明 include double 
2009-09-02 11:06
xufen340
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:166
专家分:1351
注 册:2009-8-7
收藏
得分:10 
newCpp是不是在发帖赚积分阿,问的问题每本c++书里都讲过,而且都是很明显的内容,更本没有难懂得地方,我很怀疑newCpp发帖的动机。
2009-09-02 11:16
newCpp
Rank: 5Rank: 5
来 自:火星
等 级:职业侠客
威 望:3
帖 子:256
专家分:375
注 册:2009-8-17
收藏
得分:0 
我晕,算了。我问的问题,在我解决之后如果是他们回答的
我会给分,如果是我问QQ群里问,知道后,我还会将我知道的答案补充在我的问题下面
至于你说的我发帖动机,你难道认为我吃饱撑的慌没事做??
我来这里赚分,有啥用,这里面若干帖子,我直接顶贴随便灌水就是了
我何必花费这么大的时间去发主题帖,

编程语言视频教程在线播放学习
2009-09-02 11:49
xufen340
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:166
专家分:1351
注 册:2009-8-7
收藏
得分:10 
只要有本书的就不会问这样的问题,书里这个问题写的是明明白白,根本没有一点难明白的,别人回答甚至没有书里说的准确,你问这样的问题干吗呢?难道还要这里的人教你学中文。你发这样的帖子,别人真正的问题都被你济下去了。
2009-09-02 12:03
擦除笔迹
Rank: 2
等 级:论坛游民
帖 子:6
专家分:15
注 册:2009-9-4
收藏
得分:0 
觉得楼主和我一样吧 是新手   而且手头没纸质的书(我一直想买书,可是跑遍了我们附近的比较大的书店都没有找到合适的,过两天有钱了网上买本去)
楼主问的问题我知道 这个叫函数重载  所谓函数重载是指同一个函数名可以对应着多个函数的实现。例如,可以给函数名add()定义多个函数实现,该函数的功能是求和,即求两个操作数的和。其中,一个函数实现是求两个int型数之和,另一个实现是求两个浮点型数之和,再一个实现是求两个复数的和。每种实现对应着一个函数体,这些函数的名字相同,但是函数的参数的类型不同。这就是函数重载的概念。函数重载在类和对象的应用尤其重要。
  函数重载要求编译器能够唯一地确定调用一个函数时应执行哪个函数代码,即采用哪个函数实现。确定函数实现时,要求从函数参数的个数和类型上来区分。这就是说,进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。否则,将无法实现重载。

在这里衷心感谢帮助我们新手的前辈,谢谢你们一直无私的奉献。
我们新手问的问题是有些傻,但是希望各位前辈不要取笑我们,毕竟有些书籍或者资源因为地域或者金钱的限制使得我们目前还无法得到,所以当我们有问题的时候,希望能得到你们的帮助。谢谢!!

[ 本帖最后由 擦除笔迹 于 2009-9-6 00:05 编辑 ]
2009-09-06 00:02
iambeliveble
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2009-9-2
收藏
得分:0 
可以,进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同
2009-09-06 12:55
kqscy1
Rank: 2
等 级:论坛游民
帖 子:17
专家分:81
注 册:2009-9-3
收藏
得分:0 
如果使用函数模版的话更简便
template<class T>
T MAX(T a,T b,T c)
{if(b>a) a=b;
if(c>a) a=c;
return a;
}
2009-09-07 13:22
智奇CC
Rank: 2
来 自:GD
等 级:论坛游民
帖 子:34
专家分:73
注 册:2009-9-8
收藏
得分:0 
以下是引用kqscy1在2009-9-7 13:22的发言:

如果使用函数模版的话更简便
template<class T>
T MAX(T a,T b,T c)
{if(b>a) a=b;
if(c>a) a=c;
return a;
}

如何调用模板??初学者不懂,举个例子吧,谢谢

书山有路勤为劲,
学海无涯苦作舟。
2009-09-08 21:23
yby538
Rank: 2
等 级:论坛游民
帖 子:25
专家分:52
注 册:2009-3-30
收藏
得分:0 
呵呵,多态中的重载,顺便去学习下虚函数和模版吧
2009-09-08 22:39
newCpp
Rank: 5Rank: 5
来 自:火星
等 级:职业侠客
威 望:3
帖 子:256
专家分:375
注 册:2009-8-17
收藏
得分:0 
回复8楼~~
函数模板用法其实是一个模块形式的!!
他的功能比较单一,但如果你需要重复执行某项功能的话,那么函数模板则就会起来重复的功能,因为我也大菜鸟但这函数模板去恰好
看到所以解释一下。
具体示例:
#include<iostream>
using namespace std;
template<class T>
T max(T maxi,T maxj)
{
T maxz;
if(maxi>maxj) maxz=maxi;
else maxz=maxj;
return maxz;
}
int main()
{
int i,j,k,z;
cin>>i>>j;
z=max(i,j);
cout<<z<<endl;
return z;
}
这个应该属于最简单的了!!
但刚刚我却将template写错了!我晕,才几天没练习,这个东西却忘记怎么写了!!
晕,函数模板我感觉和函数差不多!!

编程语言视频教程在线播放学习
2009-09-09 11:42
快速回复:c++里面函数名可以相同??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023943 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved