Pregunta

struct BananaHolder
{
    vector<Banana>& getBananas();
    const vector<Banana>& getBananas() const;
};

My classes are cluttered with this kind of duplication.

Is there a cleaner, more elegant alternative?

¿Fue útil?

Solución

If your class has to return references, and if it has to return a reference to a modifiable vector when invoked on a modifiable object, then I do not think there is a way to avoid the duplication - at least, not the duplicate declaration.

Notice, that some types of the Standard Library also suffer from the same problem. For instance, sequence containers such as std::vector have both a const and a non-const overload of operator [], at(), back(), front(), data(), and so on.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top