c 學習筆記5 運算子過載 友元和類的型別轉換

2021-08-01 05:06:30 字數 916 閱讀 9356

1. 運算子過載

1.1 運算子函式的宣告

class time

;time time::operator+(const time & t)const

1.2 運算子函式的呼叫

total = coding.operator+(fixing);

total = coding+fixing;

1.3 過載限制

2. 友元

2.1 友元的分類

友元函式、友元類和友元成員函式

2.2 友元的作用

通過讓函式成為類的友元,可以賦予該函式與類的成員函式相同的訪問許可權。

2.3 建立友元

友元函式是非成員函式(因此不能用成員運算子來呼叫),但其訪問許可權和成員函式一樣。

建立友元函式要將函式原型放在類宣告中,並在原型前加上關鍵字friend。

編寫友元函式定義時不需要加限定符::,也不需要加關鍵字friend。

class time

time operator*(double m,const time & t)

3. 類的自動轉換和強制型別轉換

c 筆記 運算子過載和友元

過載的作用機理 過載的區別 成員函式與非成員函式 友元運算子過載是一種形式的c 多型,過載的概念擴充套件到了運算子上,允許賦予c 運算子多種含義,允許將運算子過載擴充套件到使用者定義的型別。編譯器將根據運算元的數目和型別決定使用哪種加法定義。過載的運算子 有些例外情況 不必是成員函式,但必須至少有乙...

友元和運算子過載

友元分為友元函式和友元類兩種 1.友元函式。乙個類的友元函式可以訪問該類的私有成員 2.友元類。若a是b的友元類,則a的成員函式可以訪問b的私有成員 運算子過載 就是對已有的運算子 c 中預定義的運算子 賦予多重的含義,使同一運算子作用於不同型別的資料時導致不同型別的行為 目的 擴充套件c 中提供的...

友元運算子過載

運算子就是一種特殊的函式 運算子過載可以是普通函式 const money operator const money a1,const money a2 可以是成員函式 const money operator const money a2 const 當二元運算子作為成員函式進行過載時,只有乙個引...