链接 return-by-by-reference 调用以访问基础数据

Chaining return-by-reference calls to access underlying data

我以前只使用指针工作,我不知道引用在 return 语句中的行为是否相同。 我可以链接多个 return-by-reference 方法来访问数据而不用担心包含垃圾的“悬挂”引用吗?或者在将引用传递给上面的函数调用之前引用是否会超出范围?

如果这是传递引用的有效方式,请参阅下面的代码(我们假设索引都在范围内)

struct Data {
    //Non-Trivial Data
}

class Container {
    public:
        Data& get(int index) { return m_Collection[index]; }
    private:
        Data[100] m_Collection;
}


class ContainerCollection {
    public:
        Data& get(int containerindex, int dataindex) { return m_Container[containerindex].get(dataindex); }
    private:
        Container[3] m_Container;
}

是的,这是链接引用的有效方式。

您可以在函数内链接引用,而不必担心悬挂引用(您应该担心指针)。只要m_Container存在,引用就可用,之后指向NULL.