避免重复 getter 的常量和非常量版本

Avoiding repetition of const and non-const version of getters?

本文关键字:常量 非常 版本 getter      更新时间:2023-10-16
struct BananaHolder
{
    vector<Banana>& getBananas();
    const vector<Banana>& getBananas() const;
};

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

有没有更清洁、更优雅的选择?

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

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