C++,从函数返回引用有什么意义?

在网上看到的例子基本上都是从函数返回某个变量的引用,然后以该函数作赋值表达式左值,为变量赋值。
那么为什么不直接为变量赋值呢?写一个函数就为了一个赋值语句有什么意义?从函数返回引用还有其他用处吗?

用引用返回一个函数值的最大好处是,在内存中不产生被返回值的副本。

(1)使用引用当作函数参数和返回值,效率更高。
当函数返回引用类型的时候,没有复制返回值,而是返回对象的引用(即对象本身)。
函数返回引用:实际上是一个变量的内存地址,既然是内存地址的话,那么肯定可以读写该地址所对应的内存区域的值,即就是“左值”,可以出现在赋值语句的左边。
(2)函数返回的对象引用,必须在调用函数前就已经存在,不允许返回局部变量的引用

(3)当不希望返回的对象被修改的时候,可以添加const。

返回引用一般在成员函数里用的比较多

class A
{
public:
    // 一般const成员函数可以返回const引用以避免拷贝成员变量,比如:
    //   A a;
    //   const std::string &s = a.name(); // 这里没有拷贝_name
    const std::string& name() const { return _name; }

    // 返回引用就可以像这样赋值,
    //   A a;
    //   a[0] = 0;
    //   a[1] = 1;
    //   ...
    int& operator[](int i) { return _data[i]; }       

    // 如果const成员函数返回值类型是基本类型,一般不返回const引用,而直接返回值
    int operator[](int i) const { return _data[i]; } 

private:
    std::string _name;
    int _data[10];
};

// 另一种用法是写级联调用,比如你常用的输出语句就是一种级联调用,因为每个<<返回返回的都是os的引用
// A a;
// std::cout << "hello word" << a << 1 << 2 << 3;
std::ostream &operator <<(std::ostream& os, const A& a) {
    os << a.name();
    return os;
}

题主举个例子?