為什麼C要用到運算子過載?我好想覺得有點多餘求高手

2021-03-07 06:59:41 字數 3121 閱讀 7026

1樓:匿名使用者

運算子過載在執行結果上沒有什麼差別

主要是對於類庫的使用者方便,比較類的物件支援加法運算,如果寫成函式,看起來就不如用一個+看起來舒服

2樓:匿名使用者

絕對是個好東西,只不過你還沒到這個級別而已 泛型程式設計裡沒這個東西要鬱悶死的

用as3的時候都只好自己來做規範 什麼函式是加法 什麼函式是減法,

還要寫一堆的輔助函式來規範這個標準

3樓:書尚香

過載其實還是比較重要的,這裡的例子因為a類中的資料成員為int型別,而「+」運算子本來就可以進行整型等型別的計算。你可以嘗試定義一個複數類,然後你就可以過載「+」、「-」等的預算符;例如:定義複數類***plex,宣告兩個複數類變數a、b和c,如果你過載了「+」運算子,你就可以使用表示式c=a+b;如果你的程式有大量的關於複數類的運算,那麼你過載運算子以後就方便多了。

4樓:掬一捧月

運算子過載是對已有的運算子賦予多重含義,使同一個運算子作用於不同型別的資料導致不同型別的行為。運算子過載為類的使用者提供了更直觀的介面,使類型別的物件也可以像普通變數一樣進行運算子的表示式運算。運算子過載允許c/c++的運算子在使用者定義型別(類)上擁有一個使用者定義的意義

c++運算子過載是什麼意思

5樓:北大青鳥

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

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

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

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

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

在c++中不能在程式中直接用運算子」+」對複數進行相加運算。使用者必須自己設法實現複數相加。例如使用者可以通過定義一個專門的函式來實現複數相加。

6樓:匿名使用者

比如+運算在正常情況下只能對基本型別(int 、float等)進行加法

過載之後就可以對複數a+bi進行加法(過載函式要針對複數去寫) 如:(a+bi)+(c+di)=(a+b)+(c+d)i

過載完之後+就可以完成上面功能

7樓:匿名使用者

先去了解什麼是函式過載吧。大概意思就是兩個同名的函式,利用形參的不同來作區分。

c++中 運算子過載 到底有什麼何意義?

8樓:匿名使用者

運算子過載是一種特殊的函式過載。例如int a,b;則求a+b值時,在編譯過程中使用的是函式呼叫:opertor+(a,b).主要作用就是使程式更加簡潔,減少程式設計時間。

9樓:匿名使用者

運算子過載是一種特殊的函式過載。

c++的一大特性就是過載(overload),通過過載可以把功能相似的幾個函式合為一個,使得程式更加簡潔、高效。在c++中不止函式可以過載,運算子也可以過載。

由於一般資料型別間的運算子沒有過載的必要,所以運算子過載主要是物件導向之間的。

在進行物件之間的運算時,程式會呼叫與運算子相對應的函式進行處理,所以運算子過載有兩種方式:成員函式和友元函式。

成員函式的形式比較簡單,就是在類裡面定義了一個與操作符相關的函式。友元函式因為沒有this指標,所以形參會多一個。

10樓:湛藍水晶

的確是一樣的,比如你過載了加號,其實是同樣可以定義add()函式來完成相同的操作。

過載是為了讓運算比較符合人的思維,比如定義一個矩陣類matrixmatrix a, b ,c;

//...

//初始化a、b的語句

c = a+b; //如果沒有過載加號的話,這條就通不過編譯了只是這個+號你同樣可以定義一個add函式來操作,如:

c = a.add(b);

你覺得哪種方法比較直觀?

11樓:匿名使用者

你想想如果兩個時間相加,你用+號行嗎?

你要是把+號過載一下,寫一個你自己的+號運算方法不就可以了。

運算子過載就是自己定義符號

c++中為什麼要用輸入輸出運算子過載,有什麼作用?。。。。急用。。。新手不懂!

12樓:救世大英雄啊

比如<<,在平時他是輸出普通變數等,如int a=10;cout<類的物件,如class people{};

people p();

你想直接用cout<

13樓:匿名使用者

簡單解釋一下,a、b為整型,那麼可以直接a+b,如果a、b是類student的物件呢?a+b表示什麼?過載運算子最大的用處就是可以用於兩個物件或者物件與常規型物件之間,a+b你可以過載'+'為類student的分數相加,或者其他(年齡、錢數...

),明白?

14樓:匿名使用者

過載運算子主要是為了。。。比如 沒有 string型別 在c裡面你想要 讓 char * p1 = "123" char *p2 = "456" p1 + p2 。。。這種結果無法預知的,但是你通過string 類過載 + 運算子 你可以 string p1 string p2 .............

p1 + p2 這種就是正確的了。主要方便運算操作

c 運算子過載,c 運算子過載

其實第一個回答的程式已經ok了,這裡簡要說明一下 首先,名稱空間的問題。cout endl以及ostream都是定義在std這個名稱空間下的,因此在使用前必須包含這個一個using指示 using namespace std 表明可以使用std裡面的所有內容。除此以外還有兩種選擇 1.使用作用域運算...

C 運算子過載

其實很簡單,只要你對類的建構函式和解構函式了解的差不多。首先說第一個問題 為什麼會突然出現 string t p 在函式 string operator const char p 中,它接受一個字元指標p,返回一個string類物件,這個你懂吧?這就好辦了,這個函式想返回一個string類物件,必須...

C運算子過載

我想樓主主要是想看到過載函式的實現過程,所以我自動給參加運算的複數付值。考慮你是初學者,我都用的是很簡單的語句寫的,都是一看就懂的句子。include using namespace std class complex private double m image 描述實部 double m rea...