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

C++:運算符重載的限制

編輯:C++入門知識

 

C++中的大部分運算符都可以被重載,下面給出了能夠被重載和不能被重載的運算符。

可以被重載的運算符: + – * / % ^ & | ~ ! = < > += -= *= /= %= ^= &= |= << >> >>= <<= == != <= >= && || ++ — ->* ‘ -> [] () new delete new[] delete[] 不可以被重載的運算符: . .* :: ?; sizeof

重載不能改變運算符的優先級。

重載不能改變運算符的結合律。

重載不能改變運算符操作數的個數。

重載一元運算符仍然是一元運算符,重載二元運算符仍然是二元運算符,C++唯一的一個三元運算符(?;)不能被重載。&、*、+、-既可以被用作一元運算符,也可以被用作二元運算符。

不能創建新的運算符,只能重載現有的運算符。

常見編程錯誤:

1、  試圖創建新的運算符是個語法錯誤。

2、  試圖改變運算符對內部類型的對象的作用方式是個語法錯誤。

重載賦值運算符=和加法運算符+以後,下面的語句是允許的:

Object2 = Object2 + Object1;

但是並不意味著 += 也被自動重載了,因此下面的語句是不允許的:

Object2 += Object1;

3、  運算符只能被顯示重載。

例如,重載了某個運算符(如“+”)便可自動的重載相關的運算符(如“+=”)。這是不被允許的。

請關注 李木空間 www.limou.net

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