1.所謂過載,就是賦予其新的意義。函式可以過載,操作符也可以過載。操作符的過載給我們的程式設計帶來了很大的便利,因為操作符只能對基本的資料型別進行操作,而對使用者自定義的類等資料結構型別不支援。因此只能對其操作符進行過載之後,才能更加方便地操作我們自定義的類物件等資料型別。但是值得注意的是並不是c++中的所有運算子都可以進行操作。下面這些操作符就不可以:
. 成員訪問運算子
?: 條件運算子(三目運算子)
* 成員指標訪問限定符
sizeof 求物件長度操作符
2.過載要注意的一些特徵:
(1) c++不允許使用者重新定義新的運算子,只能對已經存在的操作符號進行過載;
(2) 過載不能改變操作符的優先級別;
(3) 過載不能改變運算子的運算物件(即就是運算元)的個數,即三目運算子仍然需要三個運算物件,雙目運算子需要兩個運算物件等。
(4) 過載不能改變運算子的結合性等。
3.運算子的過載實質上是函式的過載,是通過定義函式來實現的。運算子過載函式不僅可以作為類的成員函式,還可以作為全域性函式。但是這裡有兩個特殊的操作符是不能作為成員函式的,那就是**<<(流插入運算子)和>>**(流提取運算子)。過載運算子的函式的一般格式如下:
函式型別 operator 運算子名稱(形參表)
**過載操作符 + - >> < c 之操作符過載
include using namespace std class complex void printcom test add2 test t2 this 函式返回元素 complex operator complex c1 complex operator complex operator in...
重溫C 之 過載操作符
過載操作符是具有特殊名稱的函式 保留字operator 後接需要過載的操作符。過載操作符必須具有乙個類型別或列舉型別的運算元。不能被過載的操作符有 以及?一般將算術何關係操作符定義為非成員函式。而將賦值操作符定義為成員函式。當操作符為成員函式時,this指標指向左操作符。io操作符必須定義為非成員函...
C 之 過載賦值操作符
widget 中,有乙個 bitmap 型指標 pb class bitmap class widget 在 widget 類中過載 時,需考慮以下方面 整數 15 首先賦值給 z,得到新值的 z 再賦值給 y,接著得到新值的 y 最後再賦值給 x,如下所示 int x,y,z x y z 15 c...