C++重載運算符學習筆記...

基本知識不贅述,這裏格外說幾點:

運算符重載,不只爲了返回值,還能改變原對象:

int main()
{
   Distance D1(11, 10), D2(-5, 11);
 
   -D1;                     // 取相反數
   D1.displayDistance();    // 距離 D1
 
   -D2;                     // 取相反數
   D2.displayDistance();    // 距離 D2
 
   return 0;
}

二元運算符重載是的順序問題:

例如有 2 個操作數 a 和 b,二元運算符 >(表示一個二元運算符),a > b 的操作會被解釋爲下面2種形式之一 :

//a > b
a.operator>(b);    //類的非靜態成員函數
operator>(a, b);  //友元函數 或 普通函數

 輸入/輸出運算符重載時一般都用友元函數,就是爲了順序問題.

賦值運算符那裏也要注意一下.

++ 和 -- 運算符重載:

有個先增,後增的區別:

 // 重載前綴遞增運算符( ++ )
      Object operator++ ()  
      {}
  
// 重載後綴遞增運算符( ++ )
      Object operator++( int )         
      {}

函數調用運算符 () 重載:

重載該運算符,可以拿對象名稱當函數名,挺新鮮的

下標運算符 [] 重載:

很方便,記得用.

待更:

類成員訪問運算符 -> 重載 , 隱式轉換函數(=重載)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章