避免重复const和非const版本的getter?

时间:2013-07-06 20:31:31

标签: c++ c++11 const getter const-correctness

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

我的课程充满了这种重复。

是否有更清洁,更优雅的选择?

1 个答案:

答案 0 :(得分:4)

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

请注意,某些类型的标准库也存在同样的问题。例如,std::vector等序列容器同时包含constconst operator []at()back(),{ {1}},front()等等。