十三 友元和運算子過載

2021-10-03 00:13:03 字數 556 閱讀 8671

friend 返回值型別 函式名(引數);

friend class 該類類名;

friend 返回值型別 類名::成員函式名(引數);

成員1 運算子 成員2 等價於 成員1.operator運算子(成員2)

成員1 運算子 等價於 成員1.operator運算子()

成員1 運算子 成員2 等價於 operator運算子(成員1, 成員2)

成員1 運算子 等價於 operator運算子(成員1)

對於大多數雙目運算子(+, -, *, /)來說,過載為類的全域性函式比重載為類的成員函式適應性更強

賦值運算子(=)應過載為類的成員函式(=過載為類的友元函式會出現二義性)

單目運算子(++, --)一般過載為類的成員函式

函式呼叫運算子( () )和陣列下標運算子( )應過載為類的成員函式

輸入運算子(>>)和輸出運算子(<<)必須過載為類的友元函式

條件運算子 ? :

成員運算子 .

成員指標運算子 ->

作用域限定運算子 ;:

位元組個數運算子 sizeof

友元和運算子過載

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

友元運算子過載

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

友元函式和運算子過載

友元函式 class a void myprint 友元函式的實現,在友元函式中可以訪問私有的屬性 void modify i a p,int a void main 友元類 class a void myprint class b private a a 運算子過載 class point voi...