成员函数可以重载吗?
程序员文章站
2022-04-16 14:30:15
...
成员函数可以重载;但成员函数只能重载本类的其他成员函数。类的成员函数与普通的非成员函数以及在其他类中声明的函数不相关,也不能重载它们。
成员函数可被重载
成员函数只能重载本类的其他成员函数。类的成员函数与普通的非成员函数以及在其他类中声明的函数不相关,也不能重载它们。重载的成员函数和普通函数应用相同的规则:两个重载成员的形参数量和类型不能完全相同。调用非成员重载函数所用到的函数匹配过程也应用于重载成员函数的调用。
定义重载成员函数
为了举例说明重载,可以给出 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++视频教程》
以上就是成员函数可以重载吗?的详细内容,更多请关注其它相关文章!
上一篇: c语言主函数名是什么?
下一篇: mysql-MySQL数据库表查询优化
推荐阅读
-
运算符重载 成员函数形式与友元函数形式的比较
-
C++ 学习笔记(五)类的知识小结一(重载,友元函数,静态成员,new)
-
递归 - php的成员方法中可以写自定义函数么?
-
thinkphp自带的xml_encode函数可以输出一个xml数据文件吗?解决方案
-
种的成员可以用另一个类来声明么,对这个成员的赋值度需要this函数这样么
-
php函数中传引用参数可以设置默认值吗
-
mysql 触发器可以 调用php 函数吗解决方法
-
windows下面有类似sem_get函数可以用来互斥吗?解决办法
-
windows下面有类似sem_get函数可以用来互斥吗?解决办法
-
只有方法才可以重载和覆盖,属性(成员变量)不可以