猿问

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

#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;
}

这是我写的,不知那里错了,希望大家指点一下

子衿沉夜
浏览 308回答 2
2回答

泛舟湖上清波郎朗

程序没有错误。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;*/

隔江千里

你应该把C语言和C++语言弄混了,其中using namespace std;用于C程序中,而你下面的程序是C++,你不能把他们弄混了。
随时随地看视频慕课网APP
我要回答