操作符過載(複數類 陣列類 函式物件)

2021-08-17 19:10:54 字數 3522 閱讀 4665

目錄

操作符過載與複數類

陣列操作符的過載

函式呼叫操作符

c++中的過載能夠以特殊形式的函式的擴充套件操作符的功能 ,通過operator關鍵字可以定義特殊的函式 ,operator的本質是通過函式過載操作符 

type operator sign(const type& p1, const type& p2)   

// sign為系統中預定義的操作符,如:+,-,*,/,new,delete等

複數類的實現

#include class complex

int geta()

int getb()

friend complex add(const complex& p1, const complex& p2);

friend complex operator + (const complex& p1, const complex& p2);

};complex add(const complex& p1, const complex& p2)

complex operator + (const complex& p1, const complex& p2)

int main()

可以將操作符過載函式定義為類的成員函式 ,比全域性操作符過載函式少—個引數(左運算元),不需要依賴友元就可以完成操作符過載 ,編譯器優先在成員函式中尋找操作符過載函式

c++規定賦值操作符(=)只能過載為成員函式 ,操作符過載不能改變原操作符的優先順序 ,操作符過載不能改變運算元的個數 ,操作符過載不應改變操作符的原有語義 

完善的複數類complex.h

陣列訪問符是c/c++中的內建操作符 ,陣列訪問符的原生意義是陣列訪問和指標運算 

陣列訪問操作符( [ ] )

只能通過類的成員函式過載 ,過載函式能且僅能使用—個引數 ,可以定義不同引數的多個過載函式 

C 操作符過載 並實現複數類詳解

首先回憶下以前學的函式過載 函式過載 類中的函式過載 操作符過載 operator 什麼是操作符過載?大家都知道,在c裡,有 這些操作符,且它們的功能就是實現普通變數運算。由於c 是物件導向的,遇到的變數大多都是物件,所以優化了c裡的操作符,使它們擁有了過載能力.能通過一定方式,使物件能進行 等運算...

15 C 操作符過載 並實現複數類

首先回憶下以前學的函式過載 函式過載 類中的函式過載 操作符過載 operator 什麼是操作符過載?大家都知道,在c裡,有 這些操作符,且它們的功能就是實現普通變數運算。由於c 是物件導向的,遇到的變數大多都是物件,所以優化了c裡的操作符,使它們擁有了過載能力.能通過一定方式,使物件能進行 等運算...

C 類操作符過載筆記

不能改變操作符優先順序 不能改變操作符的結合性 不能改變操作符所需要的運算元 不能建立新的操作符 對於二元操作符過載,如果操作符左邊是類 那麼就在該類內部成員函式過載操作符即可 如果操作符左邊不是類,而是乙個常量,那麼就必須在類的外部定義乙個操作符過載函式 有乙個最基本條件 一定有乙個一元是乙個自定...