亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

c++的所有運算符都可以重載嗎?

c++的所有運算符都可以重載嗎?

C++
蝴蝶刀刀 2019-04-01 04:04:58
c++的所有運算符都可以重載嗎?
查看完整描述

2 回答

?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

大多數C++運算符可以重載。運算符重載是一種形式的C++多態。運算符重載將重載的概念擴展到運算符上,允許賦予C++運算符多種含義。

單目運算符重載:

單目運算符只有一個操作數,如!a,-b,&c,*p,還有最常用的++i和--i等。由于單目運算符只有一個操作數,因此運算符重載函數只有一個參數,如果運算符重載函數作為成員函數,則還可省略此參數。

下面以自增運算符”++“為例,介紹單目運算符的重載。

[例] 有一個Time類,包含數據成員minute(分)和sec(秒),模擬秒表,每次走一秒,滿60秒進一分鐘,此時秒又從0開始算。要求輸出分和秒的值。

可以看到:在程序中對運算符“++”進行了重載,使它能用于Time類對象。“++”和“--”運算符有兩種使用方式,前置自增運算符和后置自增運算符

針對“++”和“--”這一特點,C++約定,在自增(自減)運算符重載函數中,增加一個int型形參,就是后置自增(自減)運算符函數。

雙目運算符重載:

雙目運算符(或稱二元運算符)是C++中最常用的運算符。雙目運算符有兩個操作數,通常在運算符的左右兩側,如3+5,a=b,i<10等。在重載雙目運算符時,不言而喻在函數中應該有兩個參數。

[例] 定義一個字符串類String,用來存放不定長的字符串,重載運算符“==”、“<”和“>”,用于兩個字符串的等于、小于和大于的比較運算。

有了這個基礎后,再增加其他必要的內容?,F在增加對運算符重載的部分。為便于編寫和調試,先重載一個運算符“>”。程序如下:

程序運行結果為1。

這只是一個并不很完善的程序,但是,已經完成了實質性的工作了,運算符重載成功了。其他兩個運算符的重載如法炮制即可。




查看完整回答
反對 回復 2019-04-09
  • 2 回答
  • 0 關注
  • 1175 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號