c 過載運算子的作用是什麼,C 中 運算子過載 到底有什麼何意義?

時間 2022-04-02 05:05:13

1樓:

就是可以定義新的運算方法,比如虛數的+、-法,你定義2個虛數,直接用+是不行的,系統不認,你必須自己寫個過載,讓實部和實部相加,虛部和虛部相加,你先了解下什麼叫函式過載就能更好理解了。

2樓:

過載就是說你對系統給的不滿意,無法滿足你自己的需求,然後你寫個能滿足自己的需求代替系統的,當然只在這個類裡有效。

3樓:真愛無限

就是用函式來簡化一些比較複雜的運算,比如:矩陣相乘、複數之間的運算 等等

4樓:匿名使用者

過載也就是重寫

運算子過載就是賦予運算子新的操作,一般用於自己定義的類。

5樓:楊塵一

在c++中運算子過載的作用是對已有的運算子賦予多重含義,使同乙個運算子作用域不同型別的資料導致不同行為的發生。

c++是在c語言的基礎上開發的一種物件導向程式設計語言,應用廣泛。c++支援多種程式設計正規化 --物件導向程式設計、泛型程式設計和過程化程式設計。最新正式標準c++於2023年8月18日公布。

其程式設計領域眾廣,常用於系統開發,引擎開發等應用領域,是至今為止最受廣大程式設計師受用的最強大程式語言之一,支援類:類、封裝、過載等特性!

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

6樓:匿名使用者

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

7樓:匿名使用者

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

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

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

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

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

8樓:湛藍水晶

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

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

//...

//初始化a、b的語句

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

c = a.add(b);

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

9樓:匿名使用者

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

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

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

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

10樓:匿名使用者

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

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

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

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

11樓:匿名使用者

主要用來

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

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

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

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

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

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

但是運算子直觀。

12樓:匿名使用者

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

13樓:匿名使用者

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

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

14樓:北大青鳥

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

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

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

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

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

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

15樓:匿名使用者

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

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

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

16樓:匿名使用者

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

c++ 過載矩陣乘法運算子是什麼?

17樓:萌新妮可笑眯眯

#include

#include

#include

#include

using namespace std;

#define rep(i,n) for(int i=1;i<=n;i++) //巨集定義for迴圈,精簡**

class matrix //矩陣(或向量)類賦值過載

號過載

};void display(matrix v) //輸出return 0;}

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

18樓:匿名使用者

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

比如,定義了乙個類

class myclass

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

myclass item1, item2;

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

item1 + item2

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

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

19樓:匿名使用者

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

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

c++語言中什麼運算子不能過載

20樓:小丁創業

c++中絕大bai部分的運算子du允許過載zhi。

不能過載的運算子dao只有5個:

(1)回. (成員訪問運答算符)。

(2).* (成員指標訪問運算子)。

(3)∷(域運算子)。

(4)sizeof(長度運算子)。

(5)?: (條件運算子)。

21樓:匿名使用者

c++中絕大部分的運算子允許過載。

不能過載的運算子只有5個:

. (成員內訪問容

運算子)

.* (成員指標訪問運算子)

∷ (域運算子)

sizeof (長度運算子)

?: (條件運算子)

22樓:匿名使用者

過載抄操作符的限制:

1 並不是所有的

襲操作符都能被過載。除了. ,.* ,:: ,? : ,sizeof,typeid這幾個運算子不能被過載,其他運算子都能被過載

2 過載不能改變該運算子用於內建型別時的函義,程式設計師不能改變運算子+用於兩個int型時的含義。

3 運算子函式的引數至少有乙個必須是類的物件或者類的物件的引用。這種規定可以防止程式設計師運用運算子改變內建型別的函義。

4 過載不能改變運算子的優先順序。

5 過載不能改變運算子的結合律。

6 過載不能改變運算子運算元的個數。比如+需要兩個運算元,則過載的+也必須要有兩個運算元。

23樓:匿名使用者

幾乎全部可以. 不可以的只有4個

:: 作用域操作符

. 點號, 即成員訪問操作符

? : 邏輯操作符

.* 這個一下還真想不起來叫什麼

24樓:苦孩子

有五個. .* :: ?:: sizeof

25樓:匿名使用者

「.」、「::」、「?:」和「sizeof」

c++中,如果使用運算子過載,比如過載+,如問題補充,{}裡的+是什麼用,也會呼叫本身麼

26樓:

你過載的是用於complex類的

copy+運算子,在{}裡面的r+b.r可以看作r.+(b.

r),就是物件r所屬的類過載的+,平時我們對於兩個整型的數的加法運算,比如兩個整型數int a和int b,a+b就是呼叫了類似成員函式的經過過載的方法+,也就相當於a.+(b)。你要使用這個過載的運算子,譬如對於兩個complex物件c1,c2,那麼c1+c2就相當於c1.

+(c2),這裡就使用了你過載的運算子。

C 過載 運算子的問題,c 運算子過載問題

只拿了你有疑問的兩個函式出來討論,看是否明白 time time operator 這是字首 return this time time operator int 這是字尾 return temp time operator 這表示前 即 time1 呼叫該函式 time operator int ...

請C 高手幫忙編寫兩個關於過載運算子的程式

1.class complex complex friend const complex operator const complex c1,const complex c2 friend const complex operator const complex c1,const int c2 fr...

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

表示位移,3 1 二進位制位移00000011位移1位變成00000110,也就變成了6 魂大人的店鋪 分別表示迴圈左移 和 環右移 比如乙個8 位數 81h,二進位制的就是1000 0001,假設最初的進製位c為0 帶進製迴圈左移後,最高位移入進製位,此時,進製位c為1,數為0000 0010 再...