成员函数可以重载;但成员函数只能重载本类的其他成员函数。类的成员函数与普通的非成员函数以及在其他类中声明的函数不相关,也不能重载它们。
成员函数可被重载
成员函数只能重载本类的其他成员函数。类的成员函数与普通的非成员函数以及在其他类中声明的函数不相关,也不能重载它们。重载的成员函数和普通函数应用相同的规则:两个重载成员的形参数量和类型不能完全相同。调用非成员重载函数所用到的函数匹配过程也应用于重载成员函数的调用。
定义重载成员函数
为了举例说明重载,可以给出 Screen 类的两个重载成员,用于从窗口返回一个特定字符。两个重载成员中,一个版本返回由当前光标指示的字符,另一个返回指定行列处的字符:
class Screen {public:typedef std::string::size_type index;// return character at the cursor or at a given positionchar get() const { return contents[cursor]; }char get(index ht, index wd) const;// remaining membersprivate: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++视频教程》
以上就是成员函数可以重载吗?的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2433257.html