C++使用函数重载求:两个short型的数据和、两个int的数据和以及两个float的数据和。

如题所述

#include "iostream"

using namespace std;

short func(short a,short b)

{

        return a+b;

}

int func(int a,int b)

{

     return a+b;

}

float func(float a,float b)

{

    return a+b;

}

int main()
{
 short a=10,b=23;
 int m=20,n=34;
 float i=1.2,j=9.0;
 cout<<func(a,b)<<endl;

 cout<<func(m,n)<<endl;

  cout<<func(i,j)<<endl; 

}

追问

如果说两个数是必须是输入的呢?

追答

改一下main函数
int main()
{
short a,b;
int m,n;
float i,j;
cin>>a>>b;
cin>>m>>n;
cin>>i>>j;
cout<<func(a,b)<<endl;
cout<<func(m,n)<<endl;
cout<<func(i,j)<<endl;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-09
int sum(short num1,short num2);
long sum(int num1,int num2);
double sum(float num1,float num2);
返回值有可能超过相加类型本身的范围,所以相加short时,最好返回int,后2个同理
第2个回答  2013-05-09
运算符函数的参数至少有一个必须是类的对象或者类的对象的引用。这种规定可以防止程序员运用运算符改变内置类型的函义。
所以你的需求无法满足
第3个回答  2013-05-09
int sum(int a, int b) { return a + b; }
short sum(short a, short b) { return a + b; }
float sum(float a, float b) { return a + b; }

就这么三个函数

刚刚手滑了……
第4个回答  2013-05-09
short add(short s1, short s2) {
return s1+s2;
}
int add(int s1, int s2) {
return s1+s2;
}
float add(float s1, float s2) {
return s1+s2;
}
int main() {
int ia, ib;
short sa, sb;
float fa, fb;

ia = 1; ib = 2;
sa = 1; sb = 2;
fa = 1.0; fb = 2.0;
printf("ia + ib = %d.\n", add(ia, ib));
printf("sa + sb = %d.\n", add(sa, sb));
printf("fa + fb = %f.\n", add(fa, fb));
return 0;
}
相似回答