成員函式可以進行修改,那麼符號也可以進行 修改。如果我想輸出乙個類,但是只能按照類的屬性乙個乙個進行輸出,所以提出過載運算子,簡化輸出類,可以直接輸出類的屬性:
#include
#include
using
namespace std;
//寫乙個簡單的類
class
show
;//建構函式外部宣告
show::
show()
inttest()
intmain()
會出現如下錯誤:
在這裡出現了錯誤:沒有與這些運算元匹配的「<
我們的本意是打算輸出類 show中的屬性,但是沒有匹配的操作符,所以此處需要過載運算子。
#include
#include
using
namespace std;
//寫乙個簡單的類
class
show
;//建構函式外部宣告
show::
show()
//過載操作符使用成員函式過載是因為,函式的本質是無法實現cout
operator
<<
(ostream& cout, show & mshow)
void
test()
intmain()
執行如下:
在這裡我們看到,雖然輸出了類,但是「請按任意鍵繼續」僅僅的跟在了輸出內容後面,所以想要繼續修改,使得「請按任意鍵繼續」出現在下一行,即cout << my_show後面可以跟endl
思考:過載《是因為沒有返回,但是如果返回的就是乙個普通的值呢?如果返回的是乙個cout(不知道是否可以返回),我們進行如下嘗試
#include
#include
using
namespace std;
//寫乙個簡單的類
class
show
;//建構函式外部宣告
show::
show()
//返回值的型別需要修改,且只能採用引用的方式返回
ostream&
operator
<<
(ostream& cout, show & mshow)
void
test()
intmain()
執行結果如下:
C 過載運算子(二)(例項)
學了運算子過載,才想知道類是否知道自減,我們做了如下嘗試 include include using namespace std 寫乙個簡單的類 class show 建構函式外部宣告 show show ostream operator ostream cout,show mshow void t...
C 過載運算子
運算子過載是一種形式的c 多型。在c 中,編譯器有能力把乙個由資料 物件和操作符共同組成的表示式,解釋為對乙個全域性或成員函式的呼叫。該全域性或成員函式被稱為操作符函式,通過重定義操作符函式,可以實現針對自定義型別 結構,類 的運算法則,並使之與內建型別一樣參與各種表示式。過載運算子可使 看起來更加...
C 過載運算子
本文主要講述加號運算子 自增運算子 流提取運算子運 流插入運算子 先給出vector類 class vector 建構函式 vector const vector v 拷貝建構函式 vector operator const vector v 過載 vector operator 過載前置自增運算子...