struct BananaHolder
{
vector<Banana>& getBananas();
const vector<Banana>& getBananas() const;
};
我的课堂上充斥着这种重复。
有没有更清洁、更优雅的选择?
如果您的类必须返回引用,并且如果在可修改对象上调用时必须返回对可修改向量的引用,那么我认为没有办法避免重复 - 至少不是重复声明。
请注意,某些类型的标准库也会遇到同样的问题。例如,序列容器(如std::vector
(具有operator []
、at()
、back()
、front()
、data()
等的const
和非const
重载。