操作符重载:成员函数还是非成员函数?我看到声明为成员函数的重载运算符是不对称因为它只能有一个参数,而自动传递的另一个参数是this指针。所以没有标准来比较它们。另一方面,重载操作符声明为friend是对称因为我们传递两个相同类型的参数,因此可以比较它们。我的问题是,当我仍然可以将指针的值与引用进行比较时,为什么更喜欢朋友呢?(使用非对称版本的结果与对称版本相同)为什么STL算法只使用对称版本?
2 回答
慕妹3146593
TA贡献1820条经验 获得超9个赞
friend
Foo f = 100;int x = 10;cout << x + f;
Foo算子+(intx,ConstFoo&f);
friend
Foo
Foo
class Foo{ ... Foo operator + (int x); ...};
Foo
- 2 回答
- 0 关注
- 892 浏览
添加回答
举报
0/150
提交
取消