成员函数重载运算符和友元函数重载运算符的比较

来源:互联网 发布:新疆大学教育网络系统 编辑:程序博客网 时间:2024/05/15 09:22

1.对双目运算符而言,成员函数重载运算符的函数参数表中只有一个参数,而用友元函数重载运算符函数参数表中含有两个参数。
  对单木运算符来说,成员函数重载运算符的函数参数表中没有参数,而用友元函数重载运算符函数参数表中含有一个函数。
   这个问题要搞清楚,有一个this指针的问题。。。
2.双目运算符一般可以用友元函数重载和成员函数重载,但有一种情况只可以用友元函数重载。
  即:双目运算符左边的变量是一个常量,而不是对象!!!这点很重要的额。
书上推荐的一般经验:
   1.对于单目运算符,建议选择成员函数;
   2.对于运算符“=,(),[],->”只能作为成员函数;
   3.对于运算符“+ =,-=,/=,*=,&=,!=,~=,%=,<<=,>>=”建议重载为成员函数;
   4.对于其他运算符,建议重载为友元函数。

原创粉丝点击