close

我來介紹一下運算子多型,一般我們變數的相加都是 a = a+b這樣寫,那類別中的變數相加可以用函數加,

也可以用a.num = a.num+b.num(限public)這樣子寫,那運算子多型的作用就是把後面的寫法變成前面的寫法,這樣子懂嗎?(・ω・)v,還是舉例來介紹。

檔名:Press_class.h

image

第8、9、10行就是運算子多型(反正就是這樣宣告operator後面加上你要的運算子),第8、9行就一般的寫法,第十行比較特別,前面有一個friend,那它的作用是把第十行變為非類別函數,但是他可以存取Private的變數(其實不用太糾結friendఠ_ఠ)。

檔名:Press_methon.h

image

如果對類別有點陌生的話可以去看我之前發文章,主要是簡單的介紹類別,運算子多型跟其他函數的用法其實一樣,唯一比較特別的是第27行,那我剛剛有講他是非類別函數所以前面不用加Press::,ostream的全名為(output stream)只有運算子多型才會用到,就是回傳一個輸出流的型態,os為格式(應該不會很難懂吧Σ(゚Д゚;))。

檔名:Press_main.cpp

image

好了這個就是主程式,第12行為運算子多型的用法也可以寫成pa3 = pa1+pa2;,第13行也可以寫成op = pa1.operator(pa2);第15行就是>>顯示,我們來看結果吧。

 

image

結果就是這樣,我有點不知道要寫什麼,因為用法跟函數幾乎一模一樣,只有friend有點困擾,不過運算子多型我別人寫的程式很少用到,所以我覺得知道就好,如果以後要用就可以看這篇來回憶,如果有不懂的地方可以在下方留言。

(如果我有看到的話( ̄・ω・ ̄))

arrow
arrow
    創作者介紹
    創作者 讀書小天地 的頭像
    讀書小天地

    書籍分享天地

    讀書小天地 發表在 痞客邦 留言(0) 人氣()