【发布时间】:2014-05-09 19:27:00
【问题描述】:
我有一堆非常长的方程形式的数据,其中包括(a/b) 形式的有理数,其中 a 和 b 是整数。我做了一个简单的类,用相应的算术运算符存储有理数。
我正在尝试编写一些能够识别(a/b) 形式的代码,并使用相应的分子和分母构造该类的实例。我更愿意保留输入(a/b) 的原始形式。是否可以重载 / 运算符以使 (a/b) 返回一个有理数对象? (如果没有,有什么解决方法的想法吗?)
非常简化的代码示例:
Param A;
Param B;
(3/5)*A*A + (1/3)*B*B
我的 Param 类与自身以及与有理数类的乘法定义明确。我只需要代码将(3/5) 和(1/3) 识别为有理数的实例。
【问题讨论】:
-
我不太确定你到底在问什么。你知道运算符重载吗?如果是这样,您是否面临特定问题?
-
希望我对 Matthieu M. 的回答的评论能更清楚地说明问题。
-
那么请edit澄清你的问题。
-
@RobVerheyen 即使在您的编辑中,它也没有解释为什么您试图避免更改输入。由于我们确实向您解释了您确实无法重写
Rational operator/(int, int),并且当您要求解决方法(其中一些是 Matthieu 给您的)时,......我们还能为您做些什么? -
好吧,例如,我只是尝试过是否可以重载其他一些运算符,这样我就可以用那个运算符替换每个 / ,但似乎不可能任何一个。我也刚刚阅读了您的其他评论,我完全不知道您可以告诉编辑按照您的描述去做。