一、運算子過載:
1.類是使用者自定義的資料型別,使用運算子過載可以i實現如下邏輯:
(1)物件1 = 物件2+物件3,如描述複數的類,描述字串的類。
(2)提高程式的可讀性。
2.過載賦值運算子:
(1)如果乙個類沒有提供賦值運算函式,則預設提供乙個。
(2)如果乙個類提供了拷貝建構函式,那麼也要提供乙個過載的賦值運算函式。
3.過載運算子的規定:
(1)過載的運算子要保持原運算子的意義。
(2)只能對已有的運算子進行過載,不能增加新的運算子。
(3)過載的運算子不會改變原先的優先順序和結合性。
(4)引數說明都是內部型別的時候,不能過載。例如:
int * operator +(int ,int *) 是錯誤的。
4.運算子過載的形式:
(1)成員函式:(常見)
(2)友元函式:(不太常見)
5.運算子過載的限制:(上面是可以被過載的運算子,下面是不可以被過載的運算子)
6.運算子過載作為成員函式:
7.作為成員的運算子比之作為非成員的運算子,在宣告和定義時,形式上少了乙個引數。(當前物件在運算子的左邊,形參傳進來的在運算子的右邊)
8.c++規定: = , ()(函式訪問運算子),[ ](下標運算子),->()
9.過載前增量和後增量的區別:(++ i和i++)
(1)使用前增量的時候,對物件(運算元)進行增量修改,然後在返回該物件。
(2)使用後增量的時候,必須在增量之前返回原有的物件值。
class increase
increase&operator ++();//
increase operator ++(int);
private:
}前後增量操作的意義,決定了其不同的返回方式。前增量運算子返回引用,後增量運算子返回物件。
後增量運算子中的引數int只是為了區別前增量與後增量,除此之外沒有任何的作用。
10、++的非成員形式的過載:
friend increase &operator ++(increase &);//前增量
friend increase operator ++(increase & ,int);//後增量
increase & operator ++(increase & a)
increase operator ++(increase & a ,int)
C 基礎 運算子過載
運算子過載 返回值型別 類名 operator過載運算子 引數列表 include using namespce std class complex ostream operator ostream out,const complex c 過載輸出流 class complex complex pu...
C 基礎 運算子過載(01)
一方面,在c 中,運算子過載 operator overloading 允許把標準運算子 如 等 應用於自定義資料型別的物件。這樣可以直觀自然地看出自定義資料型別間的運算,並且提高程式的可讀性。另一方面,運算子過載僅僅是一種語法上的方便。預設運算子的本質就是函式的呼叫,而運算子過載就是另一種呼叫。同...
C 基礎(4) 運算子過載
二.使用過載運算子 c 預定義中的運算子的操作物件只侷限於基本的內建資料型別,但是對於我們自定義的型別 類 是沒有辦法操作的。但是大多時候我們需要對我們定義的型別進行類似的運算,這個時候就需要我們對這麼運算子進行重新定義,賦予其新的功能,以滿足自身的需求。運算子過載的實質就是函式過載或函式多型。運算...