运算符可以作为普通函数,朋友函数或成员函数来重载。下面的经验法则可以帮助您确定哪种形式最适合于给定的情况:

  • 如果你重载了赋值(=),下标([]),函数调用(())或成员选择( - >),那么它就是成员函数。
  • 如果你重载一个一元运算符,那么作为一个成员函数。
  • 如果你重载了一个修改左操作数的二元运算符(例如operator + =),那么你可以这样做。
  • 如果你重载了一个不修改其左操作数的二进制运算符(例如operator +),那么作为一个普通的函数或者朋友函数。

 

当使用赋值运算符和拷贝构造函数时,新的程序员经常混淆在一起,但是相当简单:

  • 如果在复制之前必须创建一个新对象,则使用复制构造函数(注意:这包括按值传递或返回对象)。
  • 如果在复制发生之前不需要创建新对象,则使用赋值运算符。

 

 

 

point + point     二元运算符+最好作为普通/好友函数来实现。
-point          一元运算符 - 最好作为一个成员函数来实现。
std :: cout << point  运算符<<必须作为普通/好友函数来实现。
point = 5;       =必须作为成员函数来实现。

 

相关文章:

  • 2022-02-08
  • 2021-08-24
  • 2021-10-10
  • 2021-12-09
猜你喜欢
  • 2021-06-20
  • 2022-01-02
  • 2022-03-03
  • 2021-11-07
  • 2021-09-11
相关资源
相似解决方案