Ver Mensaje Individual
  #7 (permalink)  
Antiguo 25/08/2016, 04:04
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Referencia a función con cláusula const

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 original
  1. void hazLista(int tam)
  2. {
  3.     m_lista = list<int>(tam);
  4.     std::iota(m_lista.begin(), m_lista.end(), 0);
  5. }


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 original
  1. void mostrar() const
  2. {
  3.     for (auto elem : m_lista)
  4.         cout<<elem<<endl;
  5. }

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 original
  1. int sumarLista (const list<int>& l)
  2. {
  3.     return std::accumulate(l.begin(), l.end(), 0);
  4. }

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.