Rog*_*gue 0 c++ operator-overloading
我构建了一个映射有理数的类,我想通过标量操作溢出来实现乘法,类似于:
Rational &operator*(Rational const& a, double lambda)
{
    Rational r(a._num * lambda, a._den);
}
凡_num和_den是有理数的分子和分母.
当我跑步时cout << r * 45.2;,我明白了-858993460/4389064.应该注意的operator<<是,在其他情况下工作正常Rational.
它怎么可能不起作用?谢谢 :)
Rational & - 您将返回对临时(未定义行为)的引用以及未能返回它.你需要:
Rational operator*(Rational const& a, double lambda) {
    return Rational(a._num * lambda, a._den);
}
我还建议您注意编译器警告.你原来的代码应该在正常的编译器上调用多个代码.
| 归档时间: | 
 | 
| 查看次数: | 92 次 | 
| 最近记录: |