2016-12-02 6 views
-1

私の割り当てでは、有理数演算の加算、減算、乗算、除算を2つの分数で実行するプログラムを作成する必要があります。それらは変数numeratorとdenominatorを持つクラスオブジェクトでなければなりません。定数オブジェクトパラメータを持つクラス関数?

class Rational 
{ 

    private: 
     int numer; 
     int denom; 
    public: 
     Rational(); 
     Rational(int); 
     Rational(int, int); 
     const Rational add(const Rational &) const; 
     const Rational subtract(const Rational &) const; 
     const Rational multiply(const Rational &) const; 
     const Rational divide(const Rational &) const; 
     void display() const; 
}; 

画分を、B、及びCを与えられた場合、例えば、私はBと乗算しなければならないとCに保存:

c = a.multiply(b) 

私は変化しないことがヘッダを与えてい私が作ってみた関数定義は

const Rational Rational::multiply(const Rational &) const 
{ 
    return a.numer*numer, a.denom*denom; 
} 

aは、関数内で定義されていないオブジェクトのようなものですが、私は、私は変数としてクラスオブジェクトを渡すと、それを掛けることができる方法について何ら他のアイデアを持っていません〜へ別のクラス。

+0

名前あなたのパラメータ: 'constの合理的合理::乗算(合理的なのconst&A)const'。あなたのコンストラクタを使用してください: 'return Rational(a.numer * numer、a.denom * denom);' –

答えて

2
  1. パラメータに名前を付け、
  2. が正しく結果オブジェクトを構築し、それを返します。

    const Rational Rational::multiply(const Rational & a) const 
    { 
        return {a.numer*numer, a.denom*denom}; 
    } 
    
1

あなたのreturn文で2パラメータクラスのコンストラクタを使用する必要があります。

return Rational(a.numer*numer, a.denom*denom); 
1
const Rational Rational::multiply(const Rational & rhs) const 
{ 
    return Rational{numer * rhs.numer, denom * rhs.denom}; 
} 
関連する問題