C++ const重载
来源:互联网 发布:mac版变色龙工具 编辑:程序博客网 时间:2024/05/17 13:43
在看STL unordered_map的源码时,看到下面一段代码的时候产生了疑惑:
iterator find(const key_type& _Keyval){// find an element in mutable hash table that matches _Keyvalreturn (lower_bound(_Keyval));}const_iterator find(const key_type& _Keyval) const{// find an element in nonmutable hash table that matches _Keyvalreturn (lower_bound(_Keyval));}
这两个函数都是unordered_map的成员函数,乍一看,其函数名和形参列表都是相同的,只有返回值不同,然后心中升起疑问,这样的重载合法吗?
仔细看,发现第二个函数后面还有一个 const,然后去网上查了下资料,才知道还有constant重载。
声明类成员函数时,总有一个我们“看不见”的参数,它就是this指针,const重载的实质是,将this指针声明为了const类型,即上述两个函数的参数表其实还是不一样的。
下面举个简单的例子来说明:
class constOverload{public:int test(){cout << 1 << endl;return 1;};bool test() const{cout << 0 << endl;return false;};constOverload(){test(); //输出1const constOverload* p = this;p->test();//输出0}}
0 0
- [C++] const与重载
- c++:重载、覆盖、隐藏 及const 问题
- const重载
- C++primer——const总结4--重载和 const 形参
- 用const完成重载
- 关于const重载
- const函数重载
- 重载与const
- const与重载
- C++中const重载
- const 与重载
- const形参重载
- 重载中的const
- const 与重载
- 重载和const形参
- 关于const重载
- 函数重载之const
- const函数重载
- JAVA生成excel表格
- 29、Java中如何将字符串转换为日期类型?
- SDAU课程练习 2 1003
- 图标跟随鼠标
- 码农小汪-剑指Offer之14 -合并两个排序的链表
- C++ const重载
- 微软面试题:利用天平砝码,三次将140克的盐 分成50、90克两份?
- Odoo8模块中增加延时自动消失的提示
- 你是不也在愁没数据?来看看Open Data吧!
- Linux磁盘管理之添加硬盘
- C# string类型(引用类型)
- html中offsetTop、clientTop、scrollTop、offsetTop各属性介绍
- float在ie浏览器上的兼容问题
- Oracle创建存储过程