C 之操作符過載

2021-07-27 04:12:26 字數 775 閱讀 4865

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...