//物件導件之程式
#include<iostream>
using namespace std;
class Fraction // 把 Fraction 變為物件, + class
{
public:// 在main中使用
Fraction operator * (const Fraction & f2) const; // 1. 不需要引入第一個變數, 因為本身就是;
//2. 不需要改變本身變數, 所以加 const
void enter (istream & ins=cin); //enter 為一物件, 之後的輸入寫法要改, 如 g.enter
void display (ostream & outs=cout) const; // 不改變內容, 所以加 const
private:
int num, den; //用到 Fraction 時才用
};
int main()
{
Fraction f, g, h;
cout << "Enter Fraction: ";
g.enter(); //g 為 Fraction 物件中的; 記得加 ()
cout << "Enter Fraction: ";
h.enter();
f = g*h;
cout << "The multiple is ";
f.display();
cout << endl;
return 0;
}
Fraction Fraction::operator * (const Fraction & f2) const //記得雙冒號 ::
{
Fraction ans;
ans.den=den*f2.den; //*本身就帶著一個變數, 所以不用再加f1., den本身就是
ans.num=num*f2.num;
return ans;
}
void Fraction::enter (istream & ins) // enter 為 Fraction 所屬的程式
{
char slash;
ins >> num >> slash >> den;
// 不需要 return
}
void Fraction::display (ostream & outs) const
{
outs << num <<"/" << den;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.7.59