程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++之父力作學習筆記5——運算符重載

C++之父力作學習筆記5——運算符重載

編輯:C++入門知識

 在C++包含很多運算符,但以下幾個運算符不能由用戶定義:
      ::(作用域解析;)
      ,(成員選擇)
      .* (通過到成員的指針做成員選擇)
      ?:三元條件運算符
      sizeof和typeid

      運算符函數的名字是由關鍵字operator後跟對應的運算符構成的;例如operator<<。運算符函數的定義和使用都可以像其他函數一樣。使用運算符不過是顯示調用運算符函數的一種簡寫形式。例如 void f(complex a,complex b)
{
    complex c=a+b;  //簡寫
    complex d=a.operator+(b);//顯示調用
}

      一個運算符函數必須或者是一個成員函數,或者至少有一個用戶定義類型的參數(重新定義運算符new和delete的函數則沒有此項要求)。這一規則就保證了用戶不能改變原有表達式的意義,除非表達式中包含有用戶定義類型的對象。特別的,不能定義只對指針進行操作的運算符函數。

      忠告:
      1.定義運算符主要是為了模仿習慣使用方式
      2.對於大型運算對象,請使用const引用參數類型
      3.對於需要訪問表示的操作,優先考慮作為成員函數而不是作為非成員函數
      4.對於對稱的運算符采用非成員函數
      5.將只有一個“大小參數”的構造函數做成explicit

      運算符重載的內容應該還是挺多的,但卻不知道如何寫,看來還是文筆太差了,有機會再補上吧。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved