2013-07-06 77 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()等等。

相關問題