如果我只启用了double和integer,那么它是4个函数。但我想启用所有数据类型(int、long、float、double、unsigned数字等)。这怎么可能呢?
#include <iostream>
using namespace std;
double diff(int num1, int num2) {
return double(num1-num2);
}
double diff(int num1, double num2) {
return double(num1)-num2;
}
double diff(double num1, int num2) {
return num1-double(num2);
}
double diff(double num1, double num2) {
return num1-num2;
}
int main() {
int a = 10;
double b = 4.4;
cout << diff(a, b) << endl;
return 0;
}
发布于 2012-11-03 20:10:38
template <typename T, typename U>
double diff(T a, U b) {
return a - b;
}
您不需要对double
进行强制转换--如果其中一个参数是double
,这将为您完成;如果两个参数都是整数,则在return
期间将为您执行强制转换。然而,
double diff(double a, double b);
也可以使用int
参数调用。
发布于 2012-11-03 20:10:49
使用模板函数:
template <typename T1, typename T2>
double diff(const T1& lhs, const T2& rhs)
{
return lhs - rhs;
}
发布于 2012-11-03 20:10:21
您不必“启用”操作,只需编写:
cout << (a - b) << endl;
https://stackoverflow.com/questions/13209032
复制相似问题