2013-07-06 43 views
3
struct BananaHolder 
{ 
    vector<Banana>& getBananas(); 
    const vector<Banana>& getBananas() const; 
}; 

我的课程杂乱无章。避免重复const和非const版本的getters?

是否有更清洁,更优雅的替代品?

+0

也许总是返回引用不是最好的选择。 – chris

+0

在我的情况下,它是必需的。 –

+0

@AndyProwl没关系。你可以复制粘贴到答案,以便我可以接受它? –

回答

4

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

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

相关问题