//一宣告物件就執行的函數
#include<iostream>
using namespace std;
class Fraction // 把 Fraction 變為物件, + class
{
public:// 在main中使用
Fraction();//default constructor 自建函數, 是一宣告物件就執行的函數
Fraction(int n, int d);
Fraction operator * (const Fraction & f2) const;
void enter (istream & ins=cin);
void display (ostream & outs=cout) const;
private:
int num, den; //用到 Fraction 時才用
};
int main()
{
Fraction f, g, h(3,4);
//一宣告f, g, 就去執行Fraction::Fraction(), f, g = 1/1
//一宣告h, 就去執行Fraction::Fraction(int n, int d), h = 3/4
f = g*h;
cout << "The multiple is "; f.display(); cout << endl;
return 0;
}
Fraction::Fraction()
{ cout <<"I'm constructor!!\n"; num=1;den=1;}
Fraction::Fraction(int n, int d)
{ cout <<"I'm constructor 2!!\n"; num=n;den=d;}
Fraction Fraction::operator * (const Fraction & f2) const //記得雙冒號 ::
{ Fraction ans;
ans.den=den*f2.den;
ans.num=num*f2.num;
return ans;}
void Fraction::enter (istream & ins) // enter 為 Fraction 所屬的程式
{ char slash;
ins >> num >> slash >> den;}
void Fraction::display (ostream & outs) const
{ outs << num <<"/" << den;}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.7.59