C++/函数中的引用

C++/reference in function

istream & /* <--here */ read(istream &is, Sales_data &item)
{
    double price = 0;
    is >> item.bookNo >> item.units_sold >> price;
    item.revenue = price * item.units_sold;
    return is;
}

 //main function
 Sales_data total;
    if (read(cin,total))
    {
        Sales_data trans;
        read(cin,trans);
        // ...

我不太明白这个函数中的引用是什么意思,删除引用就报错

引用意味着从函数中 returned 的对象的身份与调用者将接收到的对象的身份相同。换句话说,它不是副本,而是同一个对象。由于 returned 对象也是函数的参数之一,它也是通过引用获取的,因此对象 returned 与传入的对象相同。

删除引用时出现错误的原因是,如果没有它,您将尝试按值 return 流,这需要复制构造函数。但是std::istream是不可复制的,它的复制构造函数被显式删除了。