天天看點

C++面向對象進階程式設計(下) 第一周 Conversion Function 轉換函數

Conversion Function 轉換函數

你現在設計一個對象 class A,它可不可以被轉為另外一種類型,這就是一種轉換。或者是,另外一種類型可不可以轉為A。一個是轉出去,一個是轉進來,這兩個方向,我們都要談。

現在首先談的是轉出去:

C++面向對象進階程式設計(下) 第一周 Conversion Function 轉換函數

1、轉化函數不可以有參數。轉換類型而已,那有什麼參數可言。

2、轉化函數沒有傳回類型,傳回類型就是operator後面的double。他也沒有參數。

3、這種轉化函數通常會加上const,因為并沒有改變值,如上圖黃色的那塊函數。不寫也不會報錯,但是以後的情況有可能會出錯。

4、轉換函數可以寫任何一個type都可以,不一定是基本類型,隻要編譯器認得就可以。

5、對于上面的調用(

C++面向對象進階程式設計(下) 第一周 Conversion Function 轉換函數

),編譯器會先去找一個有沒有“+”重載,重載函數的兩個參數裡面一個是int型,一個是fraction類型。編譯器沒找到,是以就看看有沒有轉換函數,把f轉成double型,于是就找到了上圖中黃色的函數。

任何一個class,隻要你認為合理,你都可以寫很多個轉換函數。

未完待續 2018.11.24

繼續閱讀