我对为什么我在下面的示例中的示例中到底需要为返回类型和参数列表使用引用感到困惑。除了使用“按值传递”复制所有内容以外,它们是否还需要占用更少的内存?或者,如果我想进行级联,是否还需要处理更多?

istream &operator>>( stream &input, PhoneNumber &number)
{
//input whatever
return input;
}

最佳答案

由于a)流不可复制,b)从流中获取输入意味着对其进行突变,因此您需要修改原始文件而不是副本(无论如何实现)。并且对PhoneNumber的引用应该很明显-您正在从流中获取输入并进入该对象。如果要通过副本传递它,那么它将在运算符(operator)外部不可见,这使整个练习变得毫无意义。

09-04 07:27
查看更多