首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在c++中计算两个数字的差值?

如何在c++中计算两个数字的差值?
EN

Stack Overflow用户
提问于 2012-11-03 20:08:26
回答 6查看 3.4K关注 0票数 7

如果我只启用了double和integer,那么它是4个函数。但我想启用所有数据类型(int、long、float、double、unsigned数字等)。这怎么可能呢?

代码语言:javascript
运行
复制
#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;
}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-11-03 20:10:38

代码语言:javascript
运行
复制
template <typename T, typename U>
double diff(T a, U b) {
    return a - b;
}

您不需要对double进行强制转换--如果其中一个参数是double,这将为您完成;如果两个参数都是整数,则在return期间将为您执行强制转换。然而,

代码语言:javascript
运行
复制
double diff(double a, double b);

也可以使用int参数调用。

票数 9
EN

Stack Overflow用户

发布于 2012-11-03 20:10:49

使用模板函数:

代码语言:javascript
运行
复制
template <typename T1, typename T2>
double diff(const T1& lhs, const T2& rhs)
{
  return lhs - rhs;
}
票数 8
EN

Stack Overflow用户

发布于 2012-11-03 20:10:21

您不必“启用”操作,只需编写:

代码语言:javascript
运行
复制
cout << (a - b) << endl;
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13209032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档