unciones de @Member para información derivada en una clase
Mientras diseño una interfaz para una clase, normalmente me quedo atrapado en dos mentes si debo proporcionar funciones miembro que se puedan calcular / derivar mediante el uso de combinaciones de otras funciones miembro. Por ejemplo
class DocContainer
{
public:
Doc* getDoc(int index) const;
bool isDocSelected(Doc*) const;
int getDocCount() const;
//Should this method be here???
//This method returns the selected documents in the contrainer (in selectedDocs_out)
void getSelectedDocs(std::vector<Doc*>& selectedDocs_out) const;
};
¿Debo proporcionar esto como una función miembro de la clase o probablemente un espacio de nombres donde pueda definir este método? ¿Cuál es el preferido?