operator []重载函数
来源:互联网 发布:charles 4.2 破解 mac 编辑:程序博客网 时间:2024/06/18 04:20
今天在看书时发现了一个有意思的地方:
class TextBlock{public: TextBlock(string st) { text=st; } char& operator[](size_t position) { return text[position]; }private: string text;};int main (){ TextBlock cTex("hello"); cTex[0]='k'; return 0;}
对于:类的运算符[]重载函数:char& operator[](size_t position),其返回值是类成员text的引用,要特别当心,如果不是引用如果char operator[](size_t position),则cText[0]='K',编译器不会通过,因为此时,他只是对象text的一个副本,并不是text。上述代码中对[]重载函数的书写并不科学,只是用该例子强调返回值是引用的重要性。更科学的operator []相关写法可参考Effective C++条款3中的const成员函数。
阅读全文
0 0
- operator []重载函数
- 重载set的operator<()函数
- C++(7) 函数重载/operator
- 拷贝构造函数与重载operator =
- 从operator<<谈函数重载决议
- C++中重载operator( )构成仿函数
- 重载Operator ++
- operator++ 重载
- operator << >>重载
- operator重载
- operator <<重载
- 运算符重载 编程题#3(专项课程3;重载:* operator, & operator=, & operator(); 函数 memcpy 的使用)
- 陷阱重重的C++赋值重载函数operator=
- mfc operator new”: 没有重载函数接受 3 个参数
- (未完成)C++ 重载家法运算函数 operator+
- (未完成)C++ 重载赋值运算函数 operator =
- 一文说尽C++赋值运算符重载函数(operator=)
- 一文说尽C++赋值运算符重载函数(operator=)
- Hadoop 复习与实践(1)
- C语言对数据进行扩大
- Spring MVC中的session解决方案
- RecyclerView(四)——用RecyclerView实现多种布局
- 欧姆诺姆和糖果
- operator []重载函数
- linux-hadoop高可用集群和Zookeeper
- Java 多态理解(1)
- 第二次lnmp环境下wordpress的安装问题
- java相等还是不等
- 玩一个钓鱼网站
- leetcode 37. Sudoku Solver
- team.bridge.ipv6
- java 多态理解(2)