0

クラスの関数プロトタイプを作成する方法を誰かに説明してもらえますか?コードの先頭にmain関数を配置するにはどうすればよいですか?

これは、クラスを使用して一般的な数学演算を実行するための私のコードです。ウェブで説明を検索してみましたが、実際には何も見つかりませんでした。どんな助けでもいただければ幸いです。

#include <iostream>
using namespace std;


class fraction
{
   public:
      fraction();
      fraction(int, int);

      friend fraction operator + (fraction f1, fraction f2);
      friend fraction operator - (fraction f1, fraction f2);
      friend fraction operator * (fraction f1, fraction f2);
      friend fraction operator / (fraction f1, fraction f2);

      void readFrac();
      void displayFrac();

   private:
      int num;
      int denom;
};

fraction::fraction()
{
   num = 0;
   denom = 1;
}

fraction::fraction(int n, int d)
{
   num   = n;
   denom = d;
}


void fraction::readFrac()
{
   char slash;
   do {
       cout << "Please enter numerator  /  denominator: " << endl;
       cin  >>  num >> slash >> denom;
   } while (slash != '/');
}

void fraction::displayFrac()
{
   cout << num << '/' << denom;
}

fraction operator + (fraction f1, fraction f2)
{
   fraction temp(f1.num*f2.denom + f1.denom*f2.num, f1.denom*f2.denom); 
   return temp;
}

fraction operator - (fraction f1, fraction f2)
{
   fraction temp(f1.num*f2.denom - f1.denom*f2.num, f1.denom*f2.denom); 
   return temp;
}

fraction operator * (fraction f1, fraction f2)
{
    fraction temp(f1.num*f2.num, f1.denom*f2.denom);
    return temp;
}

fraction operator / (fraction f1, fraction f2)
{
    fraction temp(f1.num*f2.denom, f1.denom*f2.num);
    return temp;
}

int main()
{
   fraction f1, f2, f3;

   cout << "Please enter first fraction: " << endl;
   f1.readFrac();

   cout << "Please enter second fraction: " << endl;
   f2.readFrac();

   f3 = f1 + f2;     cout << endl << endl;
   f1.displayFrac(); cout << " + "; 
   f2.displayFrac(); cout << " = "; 
   f3.displayFrac(); cout << endl << endl;

   f3 = f1 - f2;     cout << endl << endl;
   f1.displayFrac(); cout << " - "; 
   f2.displayFrac(); cout << " = "; 
   f3.displayFrac(); cout << endl << endl;

   f3 = f1 * f2;     cout << endl << endl;
   f1.displayFrac(); cout << " * "; 
   f2.displayFrac(); cout << " = "; 
   f3.displayFrac(); cout << endl << endl;

   f3 = f1 / f2;     cout << endl << endl;
   f1.displayFrac(); cout << " / "; 
   f2.displayFrac(); cout << " = "; 
   f3.displayFrac(); cout << endl << endl;
}
4

1 に答える 1

1

mainがクラスを使用していると仮定すると、コードの先頭に置くことはできませんが、クラス定義の直後、メンバー関数の定義の前に置くことができます。

または、クラス定義をヘッダーに入れ、メンバー実装を別のソースファイルに入れて、メイン関数をメインソースファイルの唯一のコードとして使用することもできます。

于 2012-12-07T12:41:27.173 に答える