gpt4 book ai didi

c++ - 定义从类到 double 的转换

转载 作者:行者123 更新时间:2023-11-30 01:12:15 25 4
gpt4 key购买 nike

我想知道是否有办法解决这个问题,或者至少有更好的方法来完全使用模板:

template <typename T, typename U>
double sum(const vector<T>& vt, const vector<U>& vu)
{
// . . .
double sum = 0;
for (int i = 0; i < size; ++i)
sum += convert(vt[i] * vu[i]);
return sum;
}

TU 应该是数字,例如 double、int 或任何其他支持这些操作的类(我是模板的新手)。

有什么方法可以摆脱这个 convert() 函数(它获取特定类的数字成员)而只写 sum += vt[i] * vu[我]?

最佳答案

如果您将隐式转换运算符定义为 double(或一个为 double,另一个为可以提升为 double 的类型) TUvt[i]vu[i] 将被转换为 doubles,乘法的结果将是 double,如您所愿。

例子:

class Foo
{
double value;

public:
// ...

operator double() const { return value; }
};

但是您必须决定返回什么。

关于c++ - 定义从类到 double 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34510126/

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