13 運算子過載(一)

2022-08-20 12:06:11 字數 703 閱讀 2797

運算子過載:對已有的運算子重新進行定義,賦予其另一種功能,以適應不同的資料型別

person personaddperson(person &p)

person operator+(person &p)

#include using namespace std;

class person

int m_a;

int m_b;

};//2. 全域性函式過載 + 號

person operator+(person &p1,person &p2)

//3. 函式過載版本

person operator+(person &p1,int num)

void test01() //通過成員函式過載+號

;// 只能利用全域性函式過載左移運算子

// 如果當類中成員變數為私有屬性時可以利用友元來訪問

//cout 為標準輸出流物件,這裡為什麼用引用呢?cout 該物件全域性只能有乙個;當然不要忘記引用的本質就是「起別名」,這裡的cout 可以替換成其他的。

ostream & operator<<( ostream &cout,person &p)

void test02()

int main()

13 運算子過載

所謂過載,就是重新賦予新的含義。函式過載就是對乙個已有函式賦予新的定義,使之實現新的功能,因此,乙個函式名就可以用來代表不同功能的函式,也就是 一名多用 運算子也可以過載,運算子過載的本質是乙個函式。class complex public void printcom double f operat...

C Primer筆記13 運算子過載 總結

總結 1.不能過載的運算子 和 和 和 和 sizeof 和 typeid 2.過載運算子有兩種基本選擇 類的成員函式或者友元函式,建議規則例如以下 運算子建議使用 全部一元運算子 成員函式 必須是成員函式 似乎帶等號的都在這裡了.成員函式 全部其他二元運算子,比如 友元函式 3.前幾篇中的例項,如...

C 快速入門13 運算子過載

在平時專案中,有時候需要自定義一些常規的運算子給某個功能用,那麼就必須重新定義這個符號的功能了。有些運算子可以作為成員函式,有些運算子只能作為外部函式 比如輸入輸出流函式只可作為外部函式 加法運算子既可以作為成員函式,也可以作為外部函式。示例1 問題引入 int main cout stu 這個語句...