关于C++运算符重载

  操作符重载的方法是定义一个重载操作符的函数,在需要执行被重载操作符时,系统就自动调用该函数实现相应的操作。操作符重载实质上就是函数的重载。

  操作符重载的规则:

  1. C++不允许用户自定义新的操作符,只能对已有的C++操作符进行重载。
  2. C++中绝大部分操作符允许重载,除了以下几种:
     .(成员访问操作符)
     .*(成员指针访问操作符)
     ::(域解析操作符)
     ?!(条件操作符)
     sizeof(长度操作符)
  3. 重载不能改变操作符运算对象(即操作数)的个数。
  4. 重载不能改变操作符的优先级别。
  5. 重载不能改变操作符的结合性。
  6. 重载操作符的函数不能有默认参数。
  7. 重载的操作符必须和用户自定义类型对象一起使用,其参数至少应有一个是类对象(或类对象的引用)。即参数不能全部是C++的标准类型。
  8. 用于类对象的操作符必须重载,但“=”和“&”除外。
  9. 操作符重载函数可以是类的成员函数,也可以是类的友元函数,还可以是既非类的成员函数也不是友元函数的普通函数
  10. 重载为类的成员函数和友元函数可以访问类的私有成员。
  11. 当运算符左侧的操作数属于C++标准类型或是一个其他类的对象,则运算符重载不能作为成员函数,只能作为非成员函数。如:Matrix*Vec3可以重载为Matrix的成员函数,而Vec3*Matrix不能重载为Matrix的成员函数,只能重载为Matrix的友元函数或普通函数。
  12. 有的运算符(如赋值运算符、下标运算符、函数调用运算符)必须定义为类的成员函数,而有的运算符则不能定义为类的成员函数(如输入“<<”和输出运算符“>>”)。

原文链接: https://www.cnblogs.com/indif/archive/2011/05/13/2045238.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    关于C++运算符重载

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/25408

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 上午3:16
下一篇 2023年2月8日 上午3:16

相关推荐