成员函数可以重载吗?


本文摘自PHP中文网,作者青灯夜游,侵删。

成员函数可以重载;但成员函数只能重载本类的其他成员函数。类的成员函数与普通的非成员函数以及在其他类中声明的函数不相关,也不能重载它们。

成员函数可被重载

成员函数只能重载本类的其他成员函数。类的成员函数与普通的非成员函数以及在其他类中声明的函数不相关,也不能重载它们。重载的成员函数和普通函数应用相同的规则:两个重载成员的形参数量和类型不能完全相同。调用非成员重载函数所用到的函数匹配过程也应用于重载成员函数的调用。

定义重载成员函数

为了举例说明重载,可以给出 Screen 类的两个重载成员,用于从窗口返回一个特定字符。两个重载成员中,一个版本返回由当前光标指示的字符,另一个返回指定行列处的字符:

1

2

3

4

5

6

7

8

9

10

11

12

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;

};

与任意的重载函数一样,给指定的函数调用提供适当数目和类型的实参来选择运行哪个版本:

1

2

3

Screen myscreen;

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

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

推荐教程:《c++视频教程》

以上就是成员函数可以重载吗?的详细内容!

相关阅读 >>

成员函数可以重载吗?

.net中的重载是什么?

更多相关阅读请进入《成员函数》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...