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。
這只是一個并不很完善的程序,但是,已經完成了實質性的工作了,運算符重載成功了。其他兩個運算符的重載如法炮制即可。
- 2 回答
- 0 關注
- 1175 瀏覽
添加回答
舉報



