C 學習day3之運算子過載

2021-08-15 19:15:05 字數 1375 閱讀 1106

#includeusing namespace std;

#if 0

struct complex //複數

;complex operator+(complex a,complex b)

int main()

,bb=;

// 那我們complex cc=aa+bb;可不可以??

// 但是是不可以的。你什麼時候學過結構體有加減法。

// 但是這個地方涉及到了乙個問題,我想這麼 做怎麼辦

// 可以的。我們過載這個加號就可以了。

//使用關鍵字 operator就行了。

int a,b;

int c=a+b;

complex aa=,bb=;

complex cc=aa+bb;

cout/* *運算子過載規則

*1.c++不允許使用者自定義新的運算子,只能對已有的c++運算子進行過載

*c++中絕大部分運算子都可以被過載,但是這個運算子是不能被過載的

*成員選擇符. 成員物件選擇符.* 域解析操作符:: 條件操作符?:

*前面兩個運算子不能過載是為了保證訪問成員的功能不能被改變,域運算子和

*sizeof運算子的運算物件是型別而不是變數或一般表示式,不具備過載的特徵

*只有單目和雙目能過載

*雙目運算子我們過載了兩個了,乙個+ 乙個=。

*雙目就是兩個運算元的意思,通常情況下,以"+"為例,通常情況下

*如果過載為成員的話需要乙個引數,過載為友元的時候需要兩個引數。

*請看下面這個例子

*為什麼友元需要兩個,而成員只需要乙個呢???

*因為成員有this指標啊。

*對於單目:

*雖然我們沒有過載過,但是我們應該可以想到,過載為成員的時候0個引數

*過載為友元的時候需要1個引數。

*/#if 0

class comple

void display()

*/ friend comple operator+(comple &a,comple &b);

private:

float _x;

float _y;

};comple operator+(comple &a,comple &b)

int main()

#endif

#if 0

/* *過載+=

*/class complex

void display()

private:

int _x;

int _y;

};ostream & operator<<(ostream &os,const complex &c)

Day3 學習分享 運算子

1.算術運算子 現階段 加 減 乘 除 小括號 取餘 賦值號 注意 先乘除後加減 從左到右運算 除數不能為0 先運算小括號 小括號裡的內容對小括號外而言是乙個整體乙個常量 補充 變數必須被賦值以後才能修改內容,如果未賦值,則不能修改 偷懶專用運算子 num1 num1 num2 num1 num2 ...

c 學習之運算子過載

今天這篇部落格 寫的是運算子的過載,這裡單純的寫了 號的運算子的過載,主要就是為了在以後需要的時候能夠找到對應的資料,還有就是通過作用域解析運算子來返回我們通過返回乙個物件 這裡有些運算子是不能載入的,有些運算子是只能通過成員函式來載入,以下截圖來自c primer plus 這段 寫的是乙個複數的...

C 學習之 運算子過載

要過載運算子,需要使用被稱為運算子函式的特殊函式形式,運算子函式的格式如下 operatorop atgument list 例如,operator 過載 運算子,operator 過載 運算子。op必須是有效的c 運算子,不能虛構乙個新的運算子 乙個運算子過載示例 time time operat...