C 基礎 運算子過載

2021-09-10 01:45:05 字數 1272 閱讀 8526

一、運算子過載:

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 預定義中的運算子的操作物件只侷限於基本的內建資料型別,但是對於我們自定義的型別 類 是沒有辦法操作的。但是大多時候我們需要對我們定義的型別進行類似的運算,這個時候就需要我們對這麼運算子進行重新定義,賦予其新的功能,以滿足自身的需求。運算子過載的實質就是函式過載或函式多型。運算...