怎样可以根据输入的类型调用相应的函数????

nearwater 2003-09-18 11:18:28
利用函数的重栽设计一组函数,可以求两个整数、浮点数和字符的最大值。

怎样可以根据输入的类型调用相应的函数????
...全文
48 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
削死壹狼 2003-12-04
  • 打赏
  • 举报
回复
同意海滨 写程序的要把所有可能发生的情况都想到 让用户自己去决定输入类型
lisum 2003-11-28
  • 打赏
  • 举报
回复
#include "iostream.h"

void complex(int a,int b)
{
cout<<"max="<<((a>b)?a:b)<<endl;
}

void complex(double a,double b)
{
cout<<"max="<<((a>b)?a:b)<<endl;
}

void complex(char*a,char*b)
{
cout<<"max="<<((a>b)?a:b)<<endl;
}

void main()
{
complex(6,9);
double a=7.9;
double b=6.7;
complex(a,b);
complex("c","d");
}
nearwater 2003-09-18
  • 打赏
  • 举报
回复
就是要编程的人写这个程序,让输入者可以随意输入整数、浮点数和字符中的一种
而不用输入者把每种类型的类都输入一个值,只输入自己喜欢比较的类型就行了
输入都要是喜欢比较整数的,就输入两个整数
要是喜欢比较浮点数的,就输入两个浮点数
要是喜欢比较字符的,就输入两个字符

比较哪种类型由输入者决定
而不是在程序里就已经把数据决定好了
oopig 2003-09-18
  • 打赏
  • 举报
回复
模板函数
#include <iostream>
#include <string.h>
using namespace std;

template <class T>
T &max(T &v1, T &v2)
{
return (v1 > v2 ? v1 : v2);
}

template <>
char* &max<char*>(char* &v1, char* &v2)
{
return (::strcmp(v1, v2) > 0 ? v1 : v2);
}

main()
{
char *msg1 = "hello";
char *msg2 = "world";
cout << "max: " << max(msg1, msg2) << endl;

int i1 = 10;
int i2 = 15;
cout << "max: " << max(i1, i2) << endl;

float f1 = 10.2;
float f2 = 34.1;
cout << "max: " << max(f1, f2) << endl;

double d1 = 13.12;
double d2 = 29.31;
cout << "max: " << max(d1, d2) << endl;

return 0;
}
csdn5211 2003-09-18
  • 打赏
  • 举报
回复
C++中只要参数类型不同,编译器就把他们看作不同的函数。

比如:f(int)
f(float)

调用时只要传递相应类型的参数,就会调用相应的函数。

请仔细看书,书上没有再发帖。
sevecol 2003-09-18
  • 打赏
  • 举报
回复
函数的重载可以解决的你的问题
softwarrior 2003-09-18
  • 打赏
  • 举报
回复
这就是重载的作用啊!
l1ul1u 2003-09-18
  • 打赏
  • 举报
回复
c++自己判断参数的类型,调用相应的函数
晨星 2003-09-18
  • 打赏
  • 举报
回复
那如果连编程的人都不确定程序怎么确定?
nearwater 2003-09-18
  • 打赏
  • 举报
回复
假若每次我只输入整数、浮点数和字符中的一种,而没有事先告诉你输入哪一种,怎样根据我输入的这种调用对应的函数?
而不是在一次编译中就把整数、浮点数和字符都全输入
rengm 2003-09-18
  • 打赏
  • 举报
回复
up

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧