操作符過載(上)

2021-10-03 02:15:59 字數 2267 閱讀 8128

//複習新增:過載operator+

小結:c++標準庫並不是c++語言的一部分

c++標準庫是由c++語言編寫而成的類庫和函式的集合

c++標準庫中定義的類和物件都位於std命名空間中

c++標準庫的標頭檔案都不帶.h字尾

c++標準庫涵蓋了c庫的功能

c庫中標頭檔案對應c++中的 < cname>

c++標準庫預定義了多數常用的資料結構,如:字串,鍊錶,佇列,棧等

cin.get(); //等價於getchar()

add函式可以解決complex變數相加的問題,但是complex是現實世界中確實存在的複數,並且複數在數學中的地位和普通的實數相同

為什麼不能讓 + 操作符也支援複數相加呢?

#include #include using namespace std;

struct complex

;complex operator+ (const complex& c1, const complex& c2) //operator+相當於add()函式

int main(int argc, char *ar**)

; complex c2 = ;

complex c3 = operator+(c1, c2); //c1+c2寫法等價,更加直觀

cout<

分析:operator+(c1, c2);呼叫不直觀,直接改為c1+c2,也能編譯通過。 complex c3 = c1+c2);

c++中通過operator關鍵字可以利用函式擴充套件操作符

operator的本質是通過函式過載實現操作符過載

c++中的類的友元

private宣告使得類的成員不能被外界訪問

但是通過friend關鍵字可以例外的開放許可權

friend complex operator+ (const complex& c1, const complex& c2);

ostream& operator<< (ostream& out, const complex& c) //返回ostream&是為了支援鏈式呼叫

//友元: operator+函式是本類 complex的友元

friend complex operator+ (const complex& c1, const complex& c2);

friend ostream& operator<< (ostream& out, const complex& c);

};//過載操作符:<<

ostream& operator<< (ostream& out, const complex& c)

;int

operator

+(eee eee)

操作符過載是c++的強大特性之一

操作符過載的本質是通過函式擴充套件操作符的語義

operator關鍵字是操作符過載的關鍵

friend關鍵字可以對函式或類開發訪問許可權

操作符過載遵循函式過載的規則

操作符過載

ifndef vertex h define vertex h class vertex vertex float px float py float pz vertex operator const vertex p vertex operator const vertex p void oper...

操作符過載

1.操作符是靜態方法,返回值表示操作結果,引數是運算元。2.操作符過載需要在過載的操作符前加上operator關鍵字。3.最好少用操作符過載,只有在意義明晰而且與內建類的操作一致時才適合使用,以免造成混亂。以建立的分數類 fraction 中的 為例,該分數類中有兩個int型的私有屬性 分子 num...

過載操作符

1.過載操作符1.1 限制過載操作符具有以下限制 1 只有c 預定義的操作符集中的操作符才可以被過載 2 對於內建型別的操作符,它的預定義不能被改變,應不能為內建型別過載操作符,如,不能改變int型的操作符 的含義 3 也不能為內建的資料型別定義其它的操作符 4 只能過載類型別或列舉型別的操作符 5...