C 過載運算子(一)(例項)

2021-10-01 04:49:27 字數 1475 閱讀 3428

成員函式可以進行修改,那麼符號也可以進行 修改。如果我想輸出乙個類,但是只能按照類的屬性乙個乙個進行輸出,所以提出過載運算子,簡化輸出類,可以直接輸出類的屬性:

#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 過載前置自增運算子...