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?

Respuestas a la pregunta(6)

Su respuesta a la pregunta