运算符重载不同的操作数类型

时间:2019-01-01 19:13:03

标签: c++ operator-overloading

以下面的代码为例:

template <class t>

t operator%(t &x, t &y) {
   return x - (int)(x/y) * y; 
}

double remainder = 11.0 % 2.5;

上面的代码旨在重载%运算符,以便它也可以与小数一起使用。

但是,它会产生以下错误:

  

类型为'double'和'double'的二进制类型的'operator%'无效操作数

由于%运算符默认情况下期望int操作数,因此如果遇到其他类型(例如double),则会导致错误。

如何重载%运算符,以便允许其他操作数类型,例如double

注意:我知道您可以使用fmod来获取小数模,但是我想知道如何重载运算符并使用除预设

0 个答案:

没有答案