运算符重载

全屏查看

1 运算符重载基础概念 #

mindmap
    id1[运算符重载基础概念]
        id1-1[运算符重载的定义与意义]
        id1-2[运算符重载的基本概念]
        id1-3[运算符重载的必要性和优势]
        id1-4[运算符重载的应用场景]
        id1-5[运算符重载的限制与规则]
        id1-6[可重载运算符列表]
        id1-7[不可重载运算符列表]
        id1-8[运算符重载的基本语法规则]
        id1-9[运算符重载的优先级和结合性]
        id1-10[成员函数与非成员函数重载]
        id1-11[成员函数重载运算符]
        id1-12[非成员函数重载运算符]
        id1-13[友元函数在运算符重载中的应用]
        id1-14[两种方式的比较与选择]
运算符重载的定义与意义
运算符重载的基本概念
运算符重载的必要性和优势
运算符重载的应用场景
运算符重载的限制与规则
可重载运算符列表
不可重载运算符列表
运算符重载的基本语法规则
运算符重载的优先级和结合性
成员函数与非成员函数重载
成员函数重载运算符
非成员函数重载运算符
友元函数在运算符重载中的应用
两种方式的比较与选择

2 元运算符重载 #

递增递减运算符
前缀递增运算符 ++ 重载
后缀递增运算符 ++ 重载
前缀递减运算符 -- 重载
后缀递减运算符 -- 重载
递增递减运算符的实现区别
正负运算符
正号运算符 + 重载
负号运算符 - 重载
逻辑非运算符 ! 重载
按位取反运算符 ~ 重载
指针相关运算符
取地址运算符 & 重载
指针解引用运算符 * 重载
成员访问运算符 -> 重载
成员指针访问运算符 ->* 重载
mindmap
    id2[元运算符重载]
        id2-1[递增递减运算符]
        id2-2[前缀递增运算符 ++ 重载]
        id2-3[后缀递增运算符 ++ 重载]
        id2-4[前缀递减运算符 -- 重载]
        id2-5[后缀递减运算符 -- 重载]
        id2-6[递增递减运算符的实现区别]
        id2-7[正负运算符]
        id2-8[正号运算符 + 重载]
        id2-9[负号运算符 - 重载]
        id2-10[逻辑非运算符 ! 重载]
        id2-11[按位取反运算符 ~ 重载]
        id2-12[指针相关运算符]
        id2-13[取地址运算符 & 重载]
        id2-14[指针解引用运算符 * 重载]
        id2-15[成员访问运算符 -> 重载]
        id2-16[成员指针访问运算符 ->* 重载]

3 元运算符重载 #

mindmap
    id3[元运算符重载]
        id3-1[算术运算符]
        id3-2[加法运算符 + 重载]
        id3-3[减法运算符 - 重载]
        id3-4[乘法运算符 * 重载]
        id3-5[除法运算符 / 重载]
        id3-6[取模运算符 % 重载]
        id3-7[关系运算符]
        id3-8[等于运算符 == 重载]
        id3-9[不等于运算符 != 重载]
        id3-10[大于运算符 > 重载]
        id3-11[小于运算符 < 重载]
        id3-12[大于等于运算符 >= 重载]
        id3-13[小于等于运算符 <= 重载]
        id3-14[逻辑运算符]
        id3-15[逻辑与运算符 && 重载]
        id3-16[逻辑或运算符 || 重载]
        id3-17[逻辑运算符的短路特性]
        id3-18[位运算符]
        id3-19[按位与运算符 & 重载]
        id3-20[按位或运算符 | 重载]
        id3-21[按位异或运算符 ^ 重载]
        id3-22[左移运算符 << 重载]
        id3-23[右移运算符 >> 重载]
        id3-24[赋值运算符]
        id3-25[简单赋值运算符 = 重载]
        id3-26[复合赋值运算符 +=, -=等 重载]
        id3-27[赋值运算符的返回值考虑]
        id3-28[拷贝赋值与移动赋值]
算术运算符
加法运算符 + 重载
减法运算符 - 重载
乘法运算符 * 重载
除法运算符 / 重载
取模运算符 % 重载
关系运算符
等于运算符 == 重载
不等于运算符 != 重载
大于运算符 > 重载
小于运算符 < 重载
大于等于运算符 >= 重载
小于等于运算符 <= 重载
逻辑运算符
逻辑与运算符 && 重载
逻辑或运算符 || 重载
逻辑运算符的短路特性
位运算符
按位与运算符 & 重载
按位或运算符 | 重载
按位异或运算符 ^ 重载
左移运算符 << 重载
右移运算符 >> 重载
赋值运算符
简单赋值运算符 = 重载
复合赋值运算符 +=, -=等 重载
赋值运算符的返回值考虑
拷贝赋值与移动赋值

4 特殊运算符重载 #

函数调用运算符
函数调用运算符 重载
函数对象 Functor 的概念
函数对象的应用场景
Lambda表达式与函数对象
下标运算符
下标运算符 [] 重载
常量版本与非常量版本
多维下标运算符实现
边界检查与异常处理
类型转换运算符
类型转换运算符重载
显式类型转换与隐式类型转换
转换运算符的注意事项
避免循环转换问题
内存管理运算符
new运算符重载
delete运算符重载
new[]运算符重载
delete[]运算符重载
定位new运算符
mindmap
    id4[特殊运算符重载]
        id4-1[函数调用运算符]
        id4-2[函数调用运算符    重载]
        id4-3[函数对象 Functor 的概念]
        id4-4[函数对象的应用场景]
        id4-5[Lambda表达式与函数对象]
        id4-6[下标运算符]
        id4-7[下标运算符 [] 重载]
        id4-8[常量版本与非常量版本]
        id4-9[多维下标运算符实现]
        id4-10[边界检查与异常处理]
        id4-11[类型转换运算符]
        id4-12[类型转换运算符重载]
        id4-13[显式类型转换与隐式类型转换]
        id4-14[转换运算符的注意事项]
        id4-15[避免循环转换问题]
        id4-16[内存管理运算符]
        id4-17[new运算符重载]
        id4-18[delete运算符重载]
        id4-19[new[]运算符重载]
        id4-20[delete[]运算符重载]
        id4-21[定位new运算符]

5 流运算符重载 #

mindmap
    id5[流运算符重载]
        id5-1[输入输出流运算符]
        id5-2[输出流运算符 << 重载]
        id5-3[输入流运算符 >> 重载]
        id5-4[流运算符的重载规则]
        id5-5[格式化输出控制]
        id5-6[文件流运算符]
        id5-7[文件输入输出运算符重载]
        id5-8[进制流运算符重载]
        id5-9[流状态处理]
        id5-10[错误处理机制]
输入输出流运算符
输出流运算符 << 重载
输入流运算符 >> 重载
流运算符的重载规则
格式化输出控制
文件流运算符
文件输入输出运算符重载
进制流运算符重载
流状态处理
错误处理机制

6 运算符重载的高级主题 #

运算符重载与模板
模板类中的运算符重载
运算符重载的模板特化
概念 Concepts 与运算符重载
SFINAE在运算符重载中的应用
运算符重载的性能考虑
运算符重载的效率分析
内联运算符重载
移动语义与运算符重载
返回值优化 RVO
运算符重载的设计原则
运算符重载的一致性原则
运算符重载的直观性原则
运算符重载的完备性原则
运算符重载的安全性原则
常见设计模式中的运算符重载
迭代器模式与运算符重载
智能指针与运算符重载
数值类型包装类
字符串类运算符重载
mindmap
    id6[运算符重载的高级主题]
        id6-1[运算符重载与模板]
        id6-2[模板类中的运算符重载]
        id6-3[运算符重载的模板特化]
        id6-4[概念 Concepts 与运算符重载]
        id6-5[SFINAE在运算符重载中的应用]
        id6-6[运算符重载的性能考虑]
        id6-7[运算符重载的效率分析]
        id6-8[内联运算符重载]
        id6-9[移动语义与运算符重载]
        id6-10[返回值优化 RVO]
        id6-11[运算符重载的设计原则]
        id6-12[运算符重载的一致性原则]
        id6-13[运算符重载的直观性原则]
        id6-14[运算符重载的完备性原则]
        id6-15[运算符重载的安全性原则]
        id6-16[常见设计模式中的运算符重载]
        id6-17[迭代器模式与运算符重载]
        id6-18[智能指针与运算符重载]
        id6-19[数值类型包装类]
        id6-20[字符串类运算符重载]

7 运算符重载的实际应用 #

mindmap
    id7[运算符重载的实际应用]
        id7-1[数学类运算符重载]
        id7-2[复数类运算符重载]
        id7-3[矩阵类运算符重载]
        id7-4[向量类运算符重载]
        id7-5[分数类运算符重载]
        id7-6[容器类运算符重载]
        id7-7[数组类运算符重载]
        id7-8[链表类运算符重载]
        id7-9[映射类运算符重载]
        id7-10[集合类运算符重载]
        id7-11[字符串处理类]
        id7-12[字符串连接运算符]
        id7-13[字符串比较运算符]
        id7-14[字符串转换运算符]
        id7-15[字符串流运算符]
        id7-16[日期时间类]
        id7-17[日期运算运算符]
        id7-18[时间运算运算符]
        id7-19[日期时间比较运算符]
        id7-20[日期时间格式化输出]
数学类运算符重载
复数类运算符重载
矩阵类运算符重载
向量类运算符重载
分数类运算符重载
容器类运算符重载
数组类运算符重载
链表类运算符重载
映射类运算符重载
集合类运算符重载
字符串处理类
字符串连接运算符
字符串比较运算符
字符串转换运算符
字符串流运算符
日期时间类
日期运算运算符
时间运算运算符
日期时间比较运算符
日期时间格式化输出

8 运算符重载的最佳实践与陷阱 #

常见错误与调试
运算符重载的常见错误
调试技巧与方法
单元测试策略
性能 profiling
代码规范与风格
运算符重载的命名规范
代码格式与注释
文档编写要求
团队协作规范
兼容性与可维护性
向后兼容性考虑
代码重构技巧
版本控制策略
依赖管理
现代C++特性应用
C++11/14/17/20新特性
路比较运算符 <=>
概念 Concepts 约束
模块 Modules 中的运算符重载
mindmap
    id8[运算符重载的最佳实践与陷阱]
        id8-1[常见错误与调试]
        id8-2[运算符重载的常见错误]
        id8-3[调试技巧与方法]
        id8-4[单元测试策略]
        id8-5[性能 profiling]
        id8-6[代码规范与风格]
        id8-7[运算符重载的命名规范]
        id8-8[代码格式与注释]
        id8-9[文档编写要求]
        id8-10[团队协作规范]
        id8-11[兼容性与可维护性]
        id8-12[向后兼容性考虑]
        id8-13[代码重构技巧]
        id8-14[版本控制策略]
        id8-15[依赖管理]
        id8-16[现代C++特性应用]
        id8-17[C++11/14/17/20新特性]
        id8-18[路比较运算符 <=>]
        id8-19[概念 Concepts 约束]
        id8-20[模块 Modules 中的运算符重载]