sulliy的专栏

见证未来

C++中const重载

众所周知,C++实现函数重载有两种情况:函数参数的类型不同,参数的个数不同。而与函数的返回值没有什么关系。

需要注意的是在如下情况下:

下面的调用会产生歧义:

言归正传,看下面一段代码:取自Effective C++

const char& operator[] (std::size_t position) const

后一个const参与对重载函数的区分,这样在参数类型个数相同的情况下形成一种新的重载形式。

 

需要注意:常成员函数是常对象唯一的对外接口,使用使应该注意。常成员函数不能更新对象的数据成员,也不能调用该类中的普通成员函数。

 

这就是为什么const TextBlock ctb("World");会调用const char& operator[] (std::size_t position) const;的原因,包含了C++的隐式调用。

阅读更多
文章标签: c++ float string class c
个人分类: C/C++
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭