1樓:匿名使用者
就我的理解
那些運算子本身功能是有限的
比如不能進行複數的加減
但是我們過載以後
就可以讓它實數與實數相加,虛數與虛數相加,最後結果也是複數還有字串string裡也有很多過載的地方,像兩個字串也可以相加,等等
過載的主要目的是,簡潔易懂,原理上其實也是通過函式實現的,像a + b用add(a,b) 也行,但是看起來要就沒那麼直觀了。
2樓:匿名使用者
舉例:class point
const point operate+(const point& p1, const point& p2)
void main()
明白了嗎?如果沒有操作符過載,你是不能做p = p1+p2;這個操作的。操作符過載使你可以自己定製操作符的運算方式
c++中 運算子過載 到底有什麼何意義?
3樓:匿名使用者
運算子過載是一種特殊的函式過載。例如int a,b;則求a+b值時,在編譯過程中使用的是函式呼叫:opertor+(a,b).主要作用就是使程式更加簡潔,減少程式設計時間。
4樓:匿名使用者
運算子過載是一種特殊的函式過載。
c++的一大特性就是過載(overload),通過過載可以把功能相似的幾個函式合為乙個,使得程式更加簡潔、高效。在c++中不止函式可以過載,運算子也可以過載。
由於一般資料型別間的運算子沒有過載的必要,所以運算子過載主要是物件導向之間的。
在進行物件之間的運算時,程式會呼叫與運算子相對應的函式進行處理,所以運算子過載有兩種方式:成員函式和友元函式。
成員函式的形式比較簡單,就是在類裡面定義了乙個與操作符相關的函式。友元函式因為沒有this指標,所以形參會多乙個。
5樓:湛藍水晶
的確是一樣的,比如你過載了加號,其實是同樣可以定義add()函式來完成相同的操作。
過載是為了讓運算比較符合人的思維,比如定義乙個矩陣類matrixmatrix a, b ,c;
//...
//初始化a、b的語句
c = a+b; //如果沒有過載加號的話,這條就通不過編譯了只是這個+號你同樣可以定義乙個add函式來操作,如:
c = a.add(b);
你覺得哪種方法比較直觀?
6樓:匿名使用者
你想想如果兩個時間相加,你用+號行嗎?
你要是把+號過載一下,寫乙個你自己的+號運算方法不就可以了。
運算子過載就是自己定義符號
c++中的運算子過載一般用在什麼地方,以及有什麼用處?
7樓:匿名使用者
運算子過載一般用在類的實現中。
比如,定義了乙個類
class myclass
{};然後定義了兩個物件:
myclass item1, item2;
你可能需要進行兩個物件相加的運算。
item1 + item2
但是,系統內部本身是不支援這種操作的,此時,你就需要過載 + 運算子,實現兩個物件相加。
其他的運算子也大同小異。
8樓:匿名使用者
過載運算子只是在讓大家明白過載的思想,剛剛開始進入程式設計不會遇到過載運算子的例子。除非以後開發大的專案需要用到了運算子的過載。比方說,現在的運算子只能對整形 浮點型 字元型的去操作。
以後咱們想定義乙個類的例項讓這個類的物件直接就參與運算 (也就是運算子不再侷限在型別變數上,而是可以實現在類的物件上)
在c++中為何要進行運算子的過載啊/ 而且有什麼好處啊?請詳細的介紹一下謝謝
9樓:匿名使用者
具有相同的語意,減少函式名稱帶來的混淆.
10樓:匿名使用者
實現對自定義型別的運算!如果沒有運算子過載這個概念的話,自定義型別之間的運算就含有不確定性!有了這個技術的話,自定義型別之間的運算就可以自定義怎麼來運算!
c++中為什麼要用輸入輸出運算子過載,有什麼作用?。。。。急用。。。新手不懂!
11樓:救世大英雄啊
比如<<,在平時他是輸出普通變數等,如int a=10;cout<類的物件,如class people{};
people p();
你想直接用cout<
12樓:匿名使用者
簡單解釋一下,a、b為整型,那麼可以直接a+b,如果a、b是類student的物件呢?a+b表示什麼?過載運算子最大的用處就是可以用於兩個物件或者物件與常規型物件之間,a+b你可以過載'+'為類student的分數相加,或者其他(年齡、錢數...
),明白?
13樓:匿名使用者
過載運算子主要是為了。。。比如 沒有 string型別 在c裡面你想要 讓 char * p1 = "123" char *p2 = "456" p1 + p2 。。。這種結果無法預知的,但是你通過string 類過載 + 運算子 你可以 string p1 string p2 .............
p1 + p2 這種就是正確的了。主要方便運算操作
c++中的運算子過載主要用來做什麼?
14樓:匿名使用者
主要是用來使物件之間可以做運算操作的.
比如,你定義了乙個類的物件a而這個物件中有乙個資料,又定義了乙個b物件也有乙個資料,你須要使用a+b來計算這兩個物件中資料的合,就須要運算子過載.
運算子過載不光是可以過載四則運算的.也可以過載 下標運算子,<< >>輸入輸出運算子等等.
運算子過載主要的用途只是為了讓運算子其前後跟後的物件可以直接像物件內的資料一樣運算
15樓:匿名使用者
主要用來
定義類的運算,比如你定義個複數類,
然後就需要定義複數的加減乘除。
乙個很簡單的例子,平面中質點速度就是個複數。
定義了速度的加減乘除,還可以定義其他運算,如點積,×積。
然後用這個類的時候,直接用過載的運算子運算,直觀,簡單。
顯然,你可以不用運算子過載,而是直接用函式實現複數的各種運算。
但是運算子直觀。
16樓:匿名使用者
自定義運算子,用來實現符合自己實際的需要。
17樓:匿名使用者
個人理解:就是為了實現不同物件裡面成員的運算
C 中關於運算子過載的問題,C 中關於運算子過載的乙個問題
如果沒有自己定義預設建構函式,而你使用了ccomplex s 顯然編譯器是會報錯的。在c 中如果程式設計師沒有編寫任何形式的建構函式,那麼編譯器就會自動合成乙個預設 的建構函式,原型可能是這個樣子 classname 該建構函式用來構造預設物件。而一旦程式設計師自己定義了任何形式的其他建構函式,那麼...
C 運算子過載中過載為類的成員函式和過載為類的友元函式
友元函式 bai 具有與du類成員函式相同訪問zhi權利的 非dao成員函式 他可以訪問類專的私有和保護成員屬 通過該類物件 物件指標或其引用。簡單且一般的說 運算子過載為類的成員函式,他的引數個數會比 該運算子的操作符 少一,而運算子過載為友元函式時,他的引數與其操作個數是相同的。友員函式是指來在...
c中邏輯運算子是或的意思,C 中運算子 和 用法
是 或者 的意思 是 並且 的意思 例如真 假 結果是真 假 假 結果是假 就是說只要其中一邊是真.條件就成立 真 假 結果是假 真 真 結果是真 就是說只要其中一邊不成立.條件就是假 有乙個是假的.那麼結果就是假的.所以兩邊都是假那麼結果肯定也是假的.假假為真?這不是異或,樓主不要天真了。那只能說...