c 之操作符過載

2021-09-28 23:46:54 字數 1189 閱讀 6936

#include using namespace std;

class complex

void printcom()

test add2(test &t2) //*this //函式返回元素

complex operator-(complex &c1)

complex& operator++()

complex& operator++(int)

void operator++()

void operator++(int)

操作符過載1為什麼會用運算子過載機制用複數類舉例

//complex c3 = c1 + c2;

//原因 complex是使用者自定義型別,編譯器根本不知道如何進行加減

//編譯器給提供了一種機制,讓使用者自己去完成,自定義型別的加減操作。。。。。

//這個機制就是運算子過載機制

2運算子過載的本質是乙個函式

c++中通過乙個佔位引數來區分前置運算和後置運算

友元函式過載與全域性函式很相似

操作符過載友元函式和成員函式的選擇方法:

當無法修改左運算元的類時,使用全域性函式進行過載

=, , ()和->操作符只能通過成員函式進行過載 ,不能通過友元函式過載

cin 是 istream 的物件,cout 是 ostream 的物件

友元函式過載操作符使用注意點

友員函式過載運算子常用於運算子的左右運算元型別不同的情況

在第乙個引數需要隱式轉換的情形下,使用友員函式過載運算子是正確的選擇

友員函式沒有 this 指標,所需運算元都必須在參數列顯式宣告,很容易實現型別的隱式轉換

輸入輸出流的運算子過載只能使用友元函式的方法去實現

cout.operator<

因為沒有辦法得到cout物件類ostream的原始碼

左移操作符 << 的結合性是從左到右

cout << c1 << 「abcd」

函式返回值當左值需要返回乙個引用

C 之操作符過載

1.所謂過載,就是賦予其新的意義。函式可以過載,操作符也可以過載。操作符的過載給我們的程式設計帶來了很大的便利,因為操作符只能對基本的資料型別進行操作,而對使用者自定義的類等資料結構型別不支援。因此只能對其操作符進行過載之後,才能更加方便地操作我們自定義的類物件等資料型別。但是值得注意的是並不是c ...

重溫C 之 過載操作符

過載操作符是具有特殊名稱的函式 保留字operator 後接需要過載的操作符。過載操作符必須具有乙個類型別或列舉型別的運算元。不能被過載的操作符有 以及?一般將算術何關係操作符定義為非成員函式。而將賦值操作符定義為成員函式。當操作符為成員函式時,this指標指向左操作符。io操作符必須定義為非成員函...

C 之 過載賦值操作符

widget 中,有乙個 bitmap 型指標 pb class bitmap class widget 在 widget 類中過載 時,需考慮以下方面 整數 15 首先賦值給 z,得到新值的 z 再賦值給 y,接著得到新值的 y 最後再賦值給 x,如下所示 int x,y,z x y z 15 c...