為什麼c 要引入友元函式?

2021-07-16 07:48:51 字數 542 閱讀 4279

例如 程式 表示為 a = b * 2.75可以等於a = b.operator*(2.75)

但是 a = 2.75 * b 就不能寫成這樣 因為 operator *是成員函式 只有類的物件才能引用 

a = b * 2.75這樣的寫法只有非成員函式才能這麼寫因為:

a  = operaotor(2.75 ,b)

但是由於大部分非成員函式 都不能訪問類的資料部分 所以 引入 友元

friend time operator *();

不再使用 由於 operator *()函式不是成員函式 所以不需要 time::限定符 也不需要加上 friend

關於 cout《列印物件內容 進行過載時 

必須使用 友元 因為如果是成員函式 time<

(cout<

由於過載operator 《的返回值還是 ostream型別所以這樣可以

ostream &operator<<(ostream &os,const time &t);

ostream:輸出至螢幕上  ofstream:輸出至檔案

C 為什麼要引入成員函式?

問題引入 程式設計提示使用者輸入圓的半徑,計算輸出圓的面積 include include intmain void 物件導向首先需要對問題進行抽象,定義乙個描述圓的資料型別,再建立具體的圓物件。在c語言中,可以定義乙個結構體struct,用來包含圓的半徑等資訊,而c 中稱為類class。類和結構體...

為什麼要引入補碼

現在我們知道了計算機可以有三種編碼方式表示乙個數.對於正數因為三種編碼方式的結果都相同,所以不需要過多解釋 原碼 1 0000 0001 反碼 1 0000 0001 補碼 1 0000 0001 為了解決原碼做減法的問題,出現了反碼 1 1 1 1 0000 0001 原 1000 0001 原 ...

為什麼要引入註解

使用annotation之前 甚至在使用之後 xml被廣泛的應用於描述元資料。不知何時開始一些應用開發人員和架構師發現xml的維護越來越糟糕了。他們希望使用一些和 緊耦合的東西,而不是像xml那樣和 是松耦合的 在某些情況下甚至是完全分離的 描述。如果你在google中搜尋 xml vs.annot...