为什么我的这个函数重载不出来,显示的是三个重载函数没有任何一个可以调用

#include <iostream>
using namespace std;
void queue(int a[])
{
for(int i=0;i<5;i++)
for(int j=i+1;j<5;j++)
{ int temp;
if(a[j]<a[i])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;

}

}

}
void queue(float a[])
{
for(int i=0;i<5;i++)
for(int j=i+1;j<5;j++)
{ int temp;
if(a[j]<a[i])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;

}

}

}
void queue(double a[])
{
for(int i=0;i<5;i++)
for(int j=i+1;j<5;j++)
{ int temp;
if(a[j]<a[i])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;

}

}

}
void main()
{
int queue(int );
double queue(double );
float queue(float);
int a[5]={7,66,98,13,65};
double b[5]={1.55,76.33,34.32,54.11,77.44};
float c[5]={1.2f,3.4f,55.3f,43.3f,66.3f};
queue(c);
cout<<endl;
queue(b);
cout<<endl;
queue(a);
cout<<endl;
for(int m=0;m<5;m++) cout<<a[m]<<endl;
}


a[]:
7  13  65  66  98 
b[]:
1.55  34.32  54.11  76.33  77.44 
c[]:
1.2  3.4  43.3  55.3  66.3

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-09-18
C语言没有重载的概念。追问

这是 c++

追答

那我就不清楚了,看看是不是因为只有在类里才能重载?

本回答被网友采纳
第2个回答  2016-09-18
你的 queue 不是不返回值的么,为什么 main 的有返回值

为什么我的这个函数重载不出来,显示的是三个重载函数没有任何一个可以...
a[]:7 13 65 66 98 b[]:1.55 34.32 54.11 76.33 77.44 c[]:1.2 3.4 43.3 55.3 66.3

关于函数重载的问题
书上说重载函数必须有参数不同,也就是说参数的个数或者是类型不同都是可以的哟!

重载一个函数的条件是什么
重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数必须不同,也就是说用同一个运算符完成不同的运算功能。这就是重载函数。重载函数常用来实现功能类似而所处理的数据类型不同的问题。条件如下两个重载函数必须在下列一个或两个方面...

提示sqrt对重载函数调用不明确
这说明存在其他同名函数啊,你检查下有没有同名,系统产生歧义的时候才会出现这条提示的

运算符重载为什么总是说参数太多?
因为在一般情况下,运算的左元就是你定义的类中的对象 如果你的重载函数在类内部定义,他就会默认这点,因为加法就有两个运算数啊,所以你传递的参数应该只有一个 如果楼主愿意传递两个函数 可以把重载函数定义为友函数 就可以用在外面 就可以传递两个参数了 3q ...

关于函数重载的问题
应该是实参的位置有点问题吧,add(b,a);b是foat,a是int,楼主的本意是否是想传add(a,b);

求助,关于一道C++函数重载的问题
你有这样的问题大概是因为双目操作符比如*,可以有x.operator*(y)这种写法吧? 但是这个不改变*是二目操作符的事实。C++规定:双目操作符重载作为成员函数时只能有一个形参,调用方为左操作数,形参为右操作数。所以x.operator*(y)等价于x*y。2、重载的是后置++。后置++重载作为成员函数时跟你...

关于c++中重载的问题
函数重载是指对现有的函数进行重载,重载函数与被重载的函数的函数名相同,但参数类型、参数个数和返回类型中有一个或者多个不同,以示区别 运算符重载是指对C++中部分运算符赋予其它功能

为什么会出现这个问题:sqrt”: 对重载函数的调用不明确
改成int后把小数部分丢失了,其一。如果你对丢失小数部分无所谓的话,可以根据错误提示,把SQRT中的参数加上强制类型转换(long double或double或float)

重载函数问题
WM_NCHITTEST()LRESULT CMainFrame::OnNcHitTest(CPoint point){ \/\/ TODO: Add your message handler code here and\/or call default return CMDIFrameWndEx::OnNcHitTest(point);} 在mainfrm.h中加入:afx_msg LRESULT OnNcHitTest(CPoint point);如果还有不明白的地方到QQ群:139892312找我。

相似回答
大家正在搜