source example 1:
#include using namespace std;
int main()
cout物件(顯示器物件,輸出)
cin物件(鍵盤物件,輸入)
source example 1.7:
#include using namespace std;
int main()
;int main()
;comples c2 = ;
/* 編譯器報錯,加法不可以用於兩個結構體 */
comples c3 = c1 + c2;
return 0;
}
解決方法:
定義乙個add函式用於兩個complex的相加,修改**如下
#include using namespace std;
struct complex ;
/* 使用引用更為高效,否則還要拷貝構造 */
complex add(const complex& c1, const complex& c2 )
int main()
;complex c2 = ;
complex c3 = add(c1, c2);
cout<
a.c++中通過operate關鍵字可以利用函式擴充套件操作符
b.operate的本質也是通過函式過載實現操作符過載
**修改如下:
#include using namespace std;
struct complex ;
/* 使用引用更為高效,否則還要拷貝構造 */
complex operator+ (const complex& c1, const complex& c2 )
int main()
;complex c2 = ;
/* 等價於 complex c3 = operator+(c1, c2);*/
/* 本質就是函式呼叫 */
complex c3 = c1 + c2;
cout<
complex operator+ (const complex& c1, const complex& c2 )
2.3.2 c++中的友元
private宣告使得類的成員不能被外界訪問,但是通過friend關鍵字可以例外的開放許可權
source example 2.3.2
#include using namespace std;
class complex
int geta()
int getb()
friend complex operator+ (const complex& c1, const complex& c2 );
};complex operator+ (const complex& c1, const complex& c2 )
int main()
int geta()
int getb()
/* 開放對下面兩個函式的許可權 */
friend ostream& operator<< (ostream& out, const complex& c);
friend complex operator+ (const complex& c1, const complex& c2 );
};ostream& operator<< (ostream& out, const complex& c)
complex operator+ (const complex& c1, const complex& c2 )
int main()
{complex c1(1,2);
complex c2(1,3);
complex c3 = c1 + c2;
cout輸出結果如下:
操作符過載(上)
複習新增 過載operator 小結 c 標準庫並不是c 語言的一部分 c 標準庫是由c 語言編寫而成的類庫和函式的集合 c 標準庫中定義的類和物件都位於std命名空間中 c 標準庫的標頭檔案都不帶.h字尾 c 標準庫涵蓋了c庫的功能 c庫中標頭檔案對應c 中的 cname c 標準庫預定義了多數常...
C 筆記 第4課 操作符過載
complex complex operator complex c2 或 complex complex operator const complex c2 類內 friend complex operator complex c1,complex c2 類外 complex operator c...
C 第30課 操作符過載的概念
本文學習自 狄泰軟體學院 唐佐林老師的 c 課程 實驗1 通過實現 add 實現複數相加 實驗2 操作符過載實驗 實驗3 將操作符過載定義為類的成員函式,編譯器優先在成員函式中尋找操作符過載函式 實驗1 通過實現 add 實現複數相加 實驗2 操作符過載實驗 實驗3 將操作符過載定義為類的成員函式,...