struct BananaHolder
{
vector<Banana>& getBananas();
const vector<Banana>& getBananas() const;
};
我的课程充满了这种重复。
是否有更清洁,更优雅的选择?
答案 0 :(得分:4)
如果你的类有来返回引用,并且如果它必须在可修改对象上调用时返回对可修改向量的引用,那么我认为没有办法避免重复 - 至少,不是重复声明。
请注意,某些类型的标准库也存在同样的问题。例如,std::vector
等序列容器同时包含const
和const
operator []
,at()
,back()
,{ {1}},front()
等等。