gpt4 book ai didi

c++ - 运算符重载(相同的参数,不同的返回类型)

转载 作者:行者123 更新时间:2023-11-28 03:17:02 25 4
gpt4 key购买 nike

如何重载接受相同数量参数但具有不同返回类型的减号运算符?

模板类:

template <typename T>
T minus (T x, T y) {
return (x - y);
}

template <typename T>
double absMinus (T x, T y) {
double sd = abs(x - y);
return sd;
}

运算符重载类:

Minus operator-(Minus &p, Minus &q) {
return (p.something - q.something);
}

double operator-(Minus &p, Minus &q) {
return (p.something() - q.something());
}

当我尝试编译时,出现以下错误:

Minus.h:25: error: new declaration ‘double operator-(Minus&, Minus&)’
Minus.h:24: error: ambiguates old declaration ‘Minus operator-(Minus&, Minus&)’

最佳答案

不,你不能。只有当参数列表不同时才能进行重载。例如:

int myFun(int);
double myFun(int);

现在您正在调用 myFun(10)。编译器无法确定调用哪个版本。

关于c++ - 运算符重载(相同的参数,不同的返回类型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16561994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com