假设我已经实现了*=,=和*操作符重载,你会更喜欢使用哪一个复杂度呢?谢谢。
发布于 2011-09-08 21:28:00
考虑到我通常会用operator *=和一个副本来实现operator *,所以没有理由更喜欢operator *。
operator * (以及+、-、/等)的正常实现通常应如下所示:
T operator *(T const& left, T const& right) {
T result = left;
return result *= right;
}发布于 2011-09-08 21:31:29
对于像您指定的这样的简单操作,这两种用法都不复杂。但是,对于较长的表达式,*=可以使其更具可读性。
发布于 2011-09-08 21:26:39
如果您已经正常地实现了它们,那么最好使用*=。另一种方法需要制作一个副本,然后对其应用*=,然后将其分配回来。
https://stackoverflow.com/questions/7348776
复制相似问题