成員函數可以重載;但成員函數只能重載本類別的其他成員函數。類別的成員函數與普通的非成員函數以及在其他類別中聲明的函數不相關,也不能重載它們。
成員函數可被重載
#成員函數只能重載本類別的其他成員函數。類別的成員函數與普通的非成員函數以及在其他類別中聲明的函數不相關,也不能重載它們。重載的成員函數和普通函數應用相同的規則:兩個重載成員的形參數量和類型不能完全相同。呼叫非成員重載函數所用到的函數匹配過程也應用於重載成員函數的呼叫。
定義重載成員函數
為了舉例說明重載,可以給出 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中文網其他相關文章!