![]() |
1
2
你所拥有的对我来说很好。 顺便说一句,当您使用运算符+时,通常会使用+=来实现它。(创建lhs的副本,然后调用lhs+=rhs并返回结果) 不知道您是否已经知道这个技巧,但是由于您关心实现这些操作符的规范方法,所以一提到它就不难了。:) |
![]() |
2
1
你的东西看起来不错。 直观地考虑这一点的基本方法是在编写代码时考虑代码的外观。如果,在这种情况下,你可以写
等等,你走对了。 有很多好的经验法则可以帮助;看 this entry 在C++FAQ中对其进行大量的FAQ。 |
![]() |
3
0
我不会说“尽可能多的接口”。没有什么可以通过制造
有些人喜欢让每个函数都成为可能的非成员非友元函数,以抵御使用私有成员变量的诱惑。但您是成年人:您可以将函数作为公共成员编写,而不使用私有成员变量。我更愿意知道该函数与类绑定,并将其作为公共成员使其显式化。
旁白:
有具体的理由 确定性 函数和运算符“非友元,非成员”。例如,当用作“流插入运算符”时,运算符<<()。 不能 成为成员,因为您必须更改lhs类(流)。 |