このコードを見てください:
#include <iostream>
using namespace std;
class Ratio
{
    public:
        Ratio(int a=0, int b=1) : num(a), den(b) {}
        Ratio& operator/=(const Ratio&);
        void print() {cout << num << "/" << den << endl;}
    private:
        int num, den;
};
Ratio& Ratio::operator/=(const Ratio& r)
{
    num*=r.den;
    den*=r.num;
    return *this;
}
int main()
{
    Ratio x(1,2), y(2,5);
    y/=x;
    y.print();
}
このコードを実行した後、(y) は 5/4 になるはずです。私はそれを何度も手で計算しました! しかし、印刷後の出力 (y) では、4/5 と表示されます。それはあるべきではありませんによって反転されます !
私のコードのどこに問題がありますか? 本当に何度も何度もチェックしましたが、問題ないようです!宿題です:)