Desde mi punto de vista sí, sería la forma correcta. Yo entiendo que la opción por defecto para todas las funciones miembro debería ser const... y solo aquellas en las que la compilación falle (porque modifican realmente el estado del objeto) deberían ver eliminado dicho atributo.
Por otro lado, si me aceptas una crítica constructiva:
tu versión actual de hazLista añade elementos a la lista en vez de inicializarla. Si la idea es que hazLista resetee la lista podrías dejar la función tal que:
Código C++:
Ver originalvoid hazLista(int tam)
{
m_lista = list<int>(tam);
std::iota(m_lista.begin(), m_lista.end(), 0);
}
la función mostrar tiene demasiado código. El for se puede optimizar bastante y, además, siguiendo lo que he dicho antes, debería ser const:
Código C++:
Ver originalvoid mostrar() const
{
for (auto elem : m_lista)
cout<<elem<<endl;
}
La función sumar_lista no se libra de la crítica tampoco jejejeje. La STL tiene funciones muy útiles para no tener que reescribir una y otra vez los mismos algoritmos:
Código C++:
Ver originalint sumarLista (const list<int>& l)
{
return std::accumulate(l.begin(), l.end(), 0);
}
Un saludo.