C++入门笔记 OOP与类3

运算符重载

在C++中,运算符的重载可以看作一种特殊的函数。一元运算符有一个参数;二元运算符有两个参数。对于二元运算符而言,第一个参数作为运算符的左值,第二个参数作为运算符的右值。
如果运算符为成员函数(方法),其第一个参数默认为*this,此时一元运算符不需要参数,二元运算符需要一个参数。

运算符重载应当作为类成员还是非成员?

  • 赋值=,下标[],调用()和成员访问箭头->的运算符必须要定义为类成员
  • 复合赋值+=, -=等常理应当定义为类成员
  • 转变对象状态的运算符或者和类型绑定的运算符,如递增++,递减--应当定义为类成员
  • 对称运算符——左右值可互换的运算符,如算术运算符,相等运算符,位运算符,应当定义为成员。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容