C 為什麼要運算子過載?有什麼好處?書上概念太多,對理解沒什麼用處,誰給編個簡單的程式,解說一下

2021-03-27 19:15:41 字數 5002 閱讀 2717

1樓:匿名使用者

建立乙個名為teacher的類,該類有以下成員變數:教師姓名、id號、基本工資、獎金、所得稅和實際發放數。還有以下成員函式:

兩個建構函式,乙個用於只初始化教師姓名、id號、乙個用於初始化教師姓名、id號基本工資、獎金和所得稅;乙個輸入基本工資、獎金和所得稅的函式;乙個計算實際發放數的函式;乙個輸出教師資訊的函式。編寫主函式,呼叫第乙個建構函式宣告乙個教師物件並輸入其工資,再呼叫第二個建構函式宣告乙個教師物件。最後分別計算兩個教師的實際發放數,並在螢幕輸出。

過載運算子「+」完成此題。

#include

#include

#include

using namespace std;

class teacher

teacher(char *a,int b,float c,float d,float e)

teacher(float c,float d)void get()

void jisuan()

void showteacher()

teacher operator +(teacher t1)void display()

};void main()

乙個簡單的程式,用的過載運算子+,讓兩個物件相+,這就是物件導向的c++語言,具體的我肯定沒有書上說得全面,所以樓主還是自己好好看看書上的基礎概念。或者去網上找一些相關的問題看看,學語言是乙個過程,現在不是很懂沒關係,慢慢的一點一點往深處學,有些知識不知不覺就會明白了~~~

2樓:匿名使用者

我只簡單和你說一下,程式你自己去書上找

c++是物件導向的程式語言,引入了類

操作的時候如果乙個類的兩個物件相加,如果你簡單的將其的每一項相加,這不又回到了面向過程了嗎,

所以就要使兩個物件也能相加,所以這時候就要過載操作符。

3樓:匿名使用者

因為系統自代的運算子有時候不能達到目的。 比如string 類沒有+ 運算 過載之後實現字串相連的操作

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

4樓:救世大英雄啊

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

people p();

你想直接用cout<

5樓:匿名使用者

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

),明白?

6樓:匿名使用者

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

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

c++中的運算子過載一般用在什麼地方,以及有什麼用處?

7樓:匿名使用者

運算子過載一般用在類的實現中。

比如,定義了乙個類

class myclass

{};然後定義了兩個物件:

myclass item1, item2;

你可能需要進行兩個物件相加的運算。

item1 + item2

但是,系統內部本身是不支援這種操作的,此時,你就需要過載 + 運算子,實現兩個物件相加。

其他的運算子也大同小異。

8樓:匿名使用者

過載運算子只是在讓大家明白過載的思想,剛剛開始進入程式設計不會遇到過載運算子的例子。除非以後開發大的專案需要用到了運算子的過載。比方說,現在的運算子只能對整形 浮點型 字元型的去操作。

以後咱們想定義乙個類的例項讓這個類的物件直接就參與運算 (也就是運算子不再侷限在型別變數上,而是可以實現在類的物件上)

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

9樓:匿名使用者

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

10樓:匿名使用者

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

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

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

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

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

11樓:湛藍水晶

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

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

//...

//初始化a、b的語句

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

c = a.add(b);

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

12樓:匿名使用者

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

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

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

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

13樓:匿名使用者

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

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

14樓:匿名使用者

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

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

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

15樓:書尚香

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

16樓:掬一捧月

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

c++中的運算子過載主要用來做什麼?

17樓:匿名使用者

主要是用來使物件之間可以做運算操作的.

比如,你定義了乙個類的物件a而這個物件中有乙個資料,又定義了乙個b物件也有乙個資料,你須要使用a+b來計算這兩個物件中資料的合,就須要運算子過載.

運算子過載不光是可以過載四則運算的.也可以過載 下標運算子,<< >>輸入輸出運算子等等.

運算子過載主要的用途只是為了讓運算子其前後跟後的物件可以直接像物件內的資料一樣運算

18樓:匿名使用者

主要用來

定義類的運算,比如你定義個複數類,

然後就需要定義複數的加減乘除。

乙個很簡單的例子,平面中質點速度就是個複數。

定義了速度的加減乘除,還可以定義其他運算,如點積,×積。

然後用這個類的時候,直接用過載的運算子運算,直觀,簡單。

顯然,你可以不用運算子過載,而是直接用函式實現複數的各種運算。

但是運算子直觀。

19樓:匿名使用者

自定義運算子,用來實現符合自己實際的需要。

20樓:匿名使用者

個人理解:就是為了實現不同物件裡面成員的運算

c++為什麼要進行函式過載,有什麼作用?

21樓:神魄達克斯

1、減少對使用者的複雜性。

2、這樣做減少了函式名的數量,避免了名字空間的汙染,對於程式的可讀性有很大的好處。

過載函式是函式的一種特殊情況,為方便使用,c++允許在同一範圍中宣告幾個功能類似的同名函式,但是這些同名函式的形式引數(指引數的個數、型別或者順序)必須不同,也就是說用同乙個運算子完成不同的運算功能。這就是過載函式。過載函式常用來實現功能類似而所處理的資料型別不同的問題。

22樓:匿名使用者

多個函式可以用同乙個名字(不同引數),實現同種功能,可以有效重用**,增加可讀性。

多寫幾個例子就能更深刻理解了。

網上也有很多詳解。

比如

23樓:匿名使用者

為了簡化**,有了函式過載,只要寫乙個函式,就能根據不同的用途進行呼叫,可以說,乙個函式,多種用途,簡化了**。體現了物件導向程式設計的優越性。

24樓:匿名使用者

沒看完~~~~~~ 先頂,好同志

c 操作符過載問題,C 運算子過載是什麼意思

p13 p11 12不能過得原因是 operator 返回的是臨時變數,而你opertor 操作需要的是引用變數。會讓編譯器找不到需要的operator 操作。建議在operator 引數上加上const。或者讓operator 操作返回引用即可。這個錯誤的意思是 在乙個加了const限定符的成員函...

C中不能被過載的運算子中是什麼運算子高手們幫忙解決

是c 的類成員函式指標呼叫運算子,是用來呼叫乙個類函式指標的。舉例 假設有乙個專classa類擁有乙個成員函式void classa func int i 則可屬以這麼用 void classa fp int i 定義乙個類函式指標。classa obj fp classa func 給這個類函式指...

C 中的自增加運算子,C 運算子過載之自增 自減 運算子

簡單的說 運算子就是變數的內容加1個單位,但究竟1個單位是多少要看實際版定義的變權量的型別 比如 定義int a 0 那麼a 表示在下次使用a時a中存放的變數會變為1,即a 0 1 如果定位為int a b 這裡我們假設b已經經過了定義,為int b 10 此時a中存放的內容為b 0 的位址,我們假...