【发布时间】:2019-09-24 16:35:18
【问题描述】:
我已经在 C++ 中实现了有理数域和运算符 (+,*,-,/) 和 (==,>,
我还为分数和整数之间的运算添加了数学运算符 (+,*,-,/) 和 (==,>,
我在最后一步遇到问题:我想创建一个替代除法运算符 |在整数上,使得 int a | int b = 有理数 (a,b)。 这如何在 C++ 中完成?问题是我不知道如何向“整数类”添加任何方法,我不知道如何编辑这个“隐藏”类。如果我能做到这一点,我只会添加方法
rational operator | (int x){
rational temp;
temp.numerator=value;
temp.denominator=x.value;
temp.reduce();
return temp;
}
到整数类。我在哪里调用了整数类值的类变量。并使用了我在有理类中现有的归约方法。
【问题讨论】:
-
如果两个操作数都是内置类型,或者两个操作数都是指向任何类型的指针,则不能重载运算符。
-
"我不知道如何在“整数类”中添加任何方法,我不知道如何编辑这个“隐藏”类。"这样的类是不隐藏的。 C++ 中没有这样的类。
-
@NathanOliver 我认为有一种聪明的方法可以重载运算符,其中两个操作数都内置在类型中。我的编译器已经建议没有,但我想也许有办法做到这一点。我有点明白为什么,你当然可以用这个功能破坏东西。谢谢。