c運算子過載問題

2021-03-05 09:22:15 字數 955 閱讀 8210

1樓:過去的日子

所謂過載,就是重新賦予新的含義。函式過載就是對一個已有的函式賦予新的含義,使之實現新功能,因此,一個函式名就可以用來代表不同功能的函式,也就是」一名多用」。

運算子也可以過載。實際上,我們已經在不知不覺之中使用了運算子過載。例如,大 家都已習慣於用加法運算子」+」對整數、單精度數和雙精度數進行加法運算,如5+8, 5.

8 +3.67等,其實計算機對整數、單精度數和雙精度數的加法操作過程是很不相同的, 但由於c++已經對運算子」+」進行了過載,所以就能適用於int, float, double型別的運算。

又如」<<「是c++的位運算中的位移運算子(左移),但在輸出操作中又是與流對 象cout 配合使用的流插入運算子,」>>「也是位移運算子(右移),但在輸入操作中又是與流物件 cin 配合使用的流提取運算子。這就是運算子過載(operator overloading)。c++系統對」<<「和」>>「進行了過載,使用者在不同的場合下使用它們時,作用是不同 的。

對」<<「和」>>「的過載處理是放在標頭檔案stream中的。因此,如果要在程式中用」<<「和」>>」作流插入運算子和流提取運算子,必須在本檔案模組中包含標頭檔案stream(當然還應當包括」using namespace std「)。

2樓:

#include

using namespace std;

class date ;

date::date()

date::date(const date& date)date::date(int year, int month, int day)

date date::operator+(int offset)ostream& operator<<

int main()

關於c 三目運算子的問題,C 三目運算子問題

可以這bai麼分割 d a b?c d a?a c b 意思是這樣第du 一個三木運算子如zhi果a b非零結果則 d c d a?a c 為零則dao為版d b 第二個,先權令c d a 然後同理 c 非零結果為 a 為零則結果為c 你可以自己測幾組資料試試,不明白可以追問。比如 int a 1 ...

c成員運算子和域運算子的區別,C 中 運算子和 運算子有什麼區別

一般成員運算子bai用於選擇結構體du裡zhi面的成員,如struct xx xx.a 3 xx.b 5 域運算dao符一般用來選專用全域性的函式,如在cwnd類裡要使屬用api的setwindowpos 就要用域運算子 setwindowpos c 作用來域運算子 是和類相源關的一般 用語把函式的...

c中的運算子問題

這種細節的東西.你可以自己好好研究研究.還有要告訴你,不同的編譯環境結果也不相同.這個很簡單啦 不論b 是否執行 但是我們可以知道 兩邊的運算元不為0 所以執行完 後 b a 的答案一定是1 在計算 也就是 那麼此時該式就是b b 1 什麼數和1取餘不都餘0 所以b的結果當然是0啦 下面的童鞋考慮的...