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指標。其實...