首頁  >  文章  >  後端開發  >  成員函數可以重載嗎?

成員函數可以重載嗎?

青灯夜游
青灯夜游原創
2020-07-17 10:31:185926瀏覽

成員函數可以重載;但成員函數只能重載本類別的其他成員函數。類別的成員函數與普通的非成員函數以及在其他類別中聲明的函數不相關,也不能重載它們。

成員函數可以重載嗎?

成員函數可被重載

#成員函數只能重載本類別的其他成員函數。類別的成員函數與普通的非成員函數以及在其他類別中聲明的函數不相關,也不能重載它們。重載的成員函數和普通函數應用相同的規則:兩個重載成員的形參數量和類型不能完全相同。呼叫非成員重載函數所用到的函數匹配過程也應用於重載成員函數的呼叫。

定義重載成員函數

為了舉例說明重載,可以給出 Screen 類別的兩個重載成員,用於從視窗傳回一個特定字元。兩個重載成員中,一個版本傳回由目前遊標指示的字符,另一個傳回指定行列處的字元:

class Screen {
public:
typedef std::string::size_type index;
// return character at the cursor or at a given position
char get() const { return contents[cursor]; }
char get(index ht, index wd) const;
// remaining members
private:
std::string contents;
index cursor;
index height, width;
};

與任意的重載函數一樣,給指定的函數呼叫提供適當數目和類型的實參來選擇運行哪個版本:

Screen myscreen;
char ch = myscreen.get();// calls Screen::get()
ch = myscreen.get(0,0); // calls Screen::get(index, index)

推薦教學:《c 影片教學

#

以上是成員函數可以重載嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn