C中得運算子過載是什麼概念啊

2021-03-07 06:32:07 字數 5006 閱讀 2335

1樓:匿名使用者

一個自定義的類,一般是沒有諸如+-*/或者其他的操作的,為了程式設計方便一點,就出現了運算子過載,就是為了定義這些操作符針對自定義類的操作。

2樓:匿名使用者

操作符即是函式

a+b 等價於 operator+(a,b)"operator+" 就是+號的函式名字自定義的類不能直接使用a+b這樣的形式, 因為operator+不接受自定義型別這樣的引數

這時就需要你去定義一個+, 也就是過載

過載操作符主要是為了**的美觀和優雅

像 str + str2 + str3 這樣的比起用函式 str.push_back(str2).push_back(str3)更加簡潔和美觀

3樓:匿名使用者

運算子過載就是給這個運算子增加更加強大的功能。比如說:我們正常的+號只能進行整數浮點數的相加,不能用於結構體或者類的相加,這時就需要對+號進行過載,讓它能用於結構體或類的相加。

在這個過載函式由你自己寫**定義過載後的加號要怎麼對類或者結構進行操作。在以後出現加號的地方,函式會自動判斷你操作的是數還是類或者結構,然後選擇對應的加函式進行加操作。

4樓:匿名使用者

參考 cppreference.....

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樓:凌戰

c++中過載很重要,過載就是一個函式名對應著多個功能不一函式體,比如通過過載operator+,

int operator+(int x , int y )char * operator+(char * x,char *y)a+b呼叫operator+函式;系統判斷a,b型別,如果a,b是整數,a=1,b=2,則a+b=3,當a 為字串」hello"時,b為「world」,則a+b為「hello world」

9樓:貴淑英逢媼

c++中的過載  函式過載:

函式過載就是函式名稱相同,但定義卻不同。函式過載使得程式設計師可以將一系列的函式族定義為一個統一的介面,但是卻可以處理不同型別資料或接受不同個數的引數。這實現了統一介面,不同定義的思想。

流的過載:

c++的流提取運算子》和就插入運算子《是c++類庫提供的輸入

輸出(i/o)操作符。系統與定義了輸入流類istream和輸出流類ostream,cin和cout分別是istream和ostream的物件。

iostream標頭檔案中已經對》和《進行了過載,使得它能用來輸入/輸出標準型別的資料。但如果是自己定義型別,就需要重

載在這兩個運算子,以便它們能輸入/上歲數出該自定義型別。格式如下:

流插入的過載:ostream

&operator<<(ostream

&,自定義類

&);流提取的過載:istream

&operator>>(istream

&,自定義類

&);運算子的過載:

運算子的過載就是對運算子的重新定義,即一個運算子可以用於多種資料型別的運算中。運算子的過載在實際程式設計中使用很普遍,例如,「+」運算子既可以用於整數加,也可以用於浮點加,甚至是字串的連結。格式如下:

type

operator

sign

(引數列表);

10樓:安富貴臺環

過載,是指允許存在多個同名函式,而這些函式的參數列不同(或許引數個數不同,或許引數型別不同,或許兩者都不同)。其實,過載的概念並不屬於「物件導向程式設計」,過載的實現是:編譯器根據函式不同的參數列,對同名函式的名稱做修飾,然後這些同名函式就成了不同的函式(至少對於編譯器來說是這樣的)。

如,有兩個同名函式:function

func(p:integer):integer;和function

func(p:string):integer;。

那麼編譯器做過修飾後的函式名稱可能是這樣的:int_func、str_func。對於這兩個函式的呼叫,在編譯器間就已經確定了,是靜態的(記住:

是靜態)。

11樓:賓秀榮靳甲

c++過載是c語言中的一種函式表現方式,即過載函式。

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

12樓:匿名使用者

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

13樓:匿名使用者

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

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

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

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

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

14樓:湛藍水晶

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

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

//...

//初始化a、b的語句

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

c = a.add(b);

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

15樓:匿名使用者

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

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

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

c++運算子過載什麼意思的啊

16樓:誰說

同一運算子具備進行不同運算能力稱為運算子過載。它基於但嚴於函式過載子算內法過載,其實

容質是運算子形狀不變,使用語法相同,操作意義迥異的函式過載。如「+」,直接使用可用於「1+2」,「101+2.2」,進行過載後可以複數類物件想x1和x2的加「x1+x2」等等。

17樓:尋找

所謂運算子過載,就是對已有的運算子重新進

行定義,賦予其另一版種功能,以適應不同的權資料型別。如果還有什麼不明白,可以和我**聊 追問: ok 你**號碼多少的啊!!

我的:294696649 謝謝,還有很多很多的問題等待著你的回答呢! o(∩_∩)o~ 回答:

251157654, 順便採納了吧。謝謝。採納哦

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

18樓:匿名使用者

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

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

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

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

19樓:匿名使用者

主要用來

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

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

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

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

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

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

但是運算子直觀。

20樓:匿名使用者

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

21樓:匿名使用者

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

C運算子過載為什麼流運算子不能過載為成員函式

class object如果實現了成員operator 呼叫其物件格式o 載運算子為成員函式後,當呼叫該運算子時,左運算元必須是該類的例項。友元函式 流引數定義第一個引數.才能呼叫cout 雖然不能 過載 為成員函式,但是可以定義為新的成員函式,只不過使用習慣和常例不符而已。試想一下這一點 將我們的...

請教關於c 運算子過載的問題,謝謝

如果不用 實際上語法是沒錯的呢?而且執行也是可以的呢?答案是yes,引用array v表示回的含義是v和傳入的函答數實參共用一片記憶體區域,對v進行賦值等操作也會對傳入的實參造成修改,如果不用 的話那在過載函式中所使用的變數v就是實參的一個副本,也即另外開闢一片記憶體區域再複製一份與函式實參一模一樣...

運算子》和》有什麼區別,C 中 運算子和 運算子有什麼區別

表示是帶符號的右移 按照二進位制把數字右移指定數位,符號位為正補零,符號位負補一,低位直接移除。表示無符號的右移 按照二進位制把數字右移指定數位,高位直接補零,低位移除。區別 在傳遞時也把符號一起傳遞,比如 3 2在傳遞再傳出時依然是 3 2,而使用 時就會統一變為3 2。帶符號於無符號的差別就在此...