C 30 操作符過載的概念

2021-10-02 13:37:34 字數 1463 閱讀 4481

class complex

;int main()

; complex c2 = ;

complex c3 = c1 + c2; // ?

return 0;

}

友元函式解決方案

#include class complex 

int geta()

int getb()

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

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

int main()

思考:

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

友元函式版本的操作符過載

#include class complex 

int geta()

int getb()

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

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

int main()

操作符過載和普通函式一樣的性質,只不過用 operator sign 這個函式名而已,之後不使用函式這樣的呼叫形式,採用下面的等效方式。本質就是呼叫函式

無友元函式版本操作符過載

可以將操作符過載函式定義為類的成員函式

class type

};

#include class complex 

int geta()

int getb()

complex operator + (const complex& p)

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

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

int main()

編譯器的行為優先在成員函式中尋找操作符過載函式,一旦找到就不會去找全域性的操作符過載函式

C 第30課 操作符過載的概念

本文學習自 狄泰軟體學院 唐佐林老師的 c 課程 實驗1 通過實現 add 實現複數相加 實驗2 操作符過載實驗 實驗3 將操作符過載定義為類的成員函式,編譯器優先在成員函式中尋找操作符過載函式 實驗1 通過實現 add 實現複數相加 實驗2 操作符過載實驗 實驗3 將操作符過載定義為類的成員函式,...

操作符過載的概念

複數計算第一種形式 自定義複數類 1 include 2 3class complex 413 14int geta 1518 19int getb 2023 24 friend complex add const complex p1,const complex p2 25 2627 comple...

c 操作符過載(部分概念解釋)

這裡主要講了c 操作符重載重編譯器對成員函式和全域性函式的不同解釋,並且介紹了輸入輸出操作符的過載 單目操作符 成員函式 單目操作符 全域性函式 雙目操作符 成員函 數 雙目操作符 全域性函式 不難看出如果操作符過載函式是成員函式的話,左運算元是呼叫物件本身,這也正是因為成員函式有this指標。其實...