3
struct BananaHolder
{
    vector<Banana>& getBananas();
    const vector<Banana>& getBananas() const;
};

我的课堂上充斥着这种重复。

有没有更干净、更优雅的选择?

4

1 回答 1

4

如果您的类必须返回引用,并且在可修改对象上调用时必须返回对可修改向量的引用,那么我认为没有办法避免重复 - 至少不是重复声明。

请注意,某些类型的标准库也存在同样的问题。例如,诸如序列容器之类的序列容器同时具有, , , , , 等std::vector的 aconst和非const重载。operator []at()back()front()data()

于 2013-07-06T20:50:42.790 回答