为了账号安全,请及时绑定邮箱和手机立即绑定

您好,麻烦写出三个重载的display函数,其作用是根据形参的类型!

您好,麻烦写出三个重载的display函数,其作用是根据形参的类型!

子衿沉夜 2021-12-29 07:07:23
#include<iostream>using namespace std;void display(int);void display(double);void display(char);int main(){int a;double b;char c;cout<<"请随便输入一个参数a:"<<endl;cin>>a;display(a);cin>>b;display(b);cin>>c;display(c);return 0;}void display(int a){cout<<"参数a类型是int "<<endl; }void display(double b){cout<<"参数a类型是double"<<endl;}void display(char c){cout<<"参数a类型是char"<<endl;}这是我写的,不知那里错了,希望大家指点一下
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

程序没有错误。
int a;
double b; //你定义的时候就固定好了它的类型,所以调用的时候自然对应调用其函数原型
char c;
如果,你是想 对输入的一个数据判断其为什么类型,的确需要先进行判断。
如下思考的一个判断。
#include<iostream>
#include <string>
using namespace std;

void display(int a);
void display(double b);
void display(char c);
int main()
{
char a[10];
int b;
double c;

cout<<"请随便输入一个参数a:"<<endl;
cin>>a;
b = atoi(a);
c = atof(a);

if(a[0]<'0' || a[0]>'9' )
{
display(a[0]);
return 1;
}
if(b!=c)
{
display(c);
}
else
{
display(b);
}

return 0;
}
void display(int a)
{
cout<<"参数a类型是int "<<endl;
}
void display(double b)
{
cout<<"参数a类型是double"<<endl;
}
void display(char c)
{
cout<<"参数a类型是char"<<endl;
}

/*
int i = 10;
double d = 10.0;

if (typeid(i).name() == std::string("int"))
std::cout << typeid(i).name() << std::endl;

if (typeid(d).name() == std::string("double"))
std::cout << typeid(d).name() << std::endl;
*/



查看完整回答
反对 回复 2022-01-03
?
隔江千里

TA贡献1906条经验 获得超10个赞

你应该把C语言和C++语言弄混了,其中using namespace std;用于C程序中,而你下面的程序是C++,你不能把他们弄混了。

查看完整回答
反对 回复 2022-01-03
  • 2 回答
  • 0 关注
  • 307 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信