C++ operator overload
发布时间
阅读量:
阅读量
在完成对C++运算符重载相关知识的深入学习后,今天我们对这一主题进行系统性归纳。首先,我们来探讨运算符重载过程中需要注意的关键点:
- C++语言规范中明确禁止程序员自行定义新的运算符(这显然是为了避免运算符数量过多导致逻辑混乱)。
- 对运算符进行重载时,其功能应当符合常规使用习惯。例如:若我们为复数类重载加法运算符,其内部实现应为加法操作,而非减法;若对大于号进行重载,其判断逻辑也应保持一致,不能与预期相反。
- 在C++中编写运算符重载函数时,不得改变原有运算符的优先级规则。
- 部分特殊运算符是无法被重载的,具体包括:“.”、“.*”、“::”、“?:”以及“sizeof”等。
- 某些特定的运算符在进行重载时,必须将其定义为类的成员函数。这些运算符包括:括号“()”、下标“[]”、指针“->”以及赋值“=”。
- 运算符重载的本质在于将一个特定的运算表达式转化为函数调用形式。
- 运算符可以被定义为全局函数或成员函数。通常情况下更推荐将其作为成员函数处理,这样能够更好地体现该操作与类之间的关联性。
- 当将一个运算符作为全局函数进行重载时,其参数个数应与该运算法则的操作数数量相匹配,并且这些操作数会以实际参数的形式传递给该函数。
- 若将一个二元运算法则作为成员函数进行重载,则其参数个数应比该运算法则的操作数少一。这
全部评论 (0)
还没有任何评论哟~
