以下面的代码为例:
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
来获取小数模,但是我想知道如何重载运算符并使用除预设。