Foros del Web » Programación para mayores de 30 ;) » C/C++ »

duda sobre const en c++

Estas en el tema de duda sobre const en c++ en el foro de C/C++ en Foros del Web. Bueno para empezar aclaro que soy un programador básico en C++, y mi auto-educación está basada en "conocer la teoría", "aplicarla en la práctica"(Parece redundante ...
  #1 (permalink)  
Antiguo 12/07/2009, 00:15
Avatar de jaao_death  
Fecha de Ingreso: abril-2009
Ubicación: Murcia/españa
Mensajes: 229
Antigüedad: 15 años, 7 meses
Puntos: 6
Información duda sobre const en c++

Bueno para empezar aclaro que soy un programador básico en C++, y mi auto-educación está basada en "conocer la teoría", "aplicarla en la práctica"(Parece redundante XD), y ver ejemplos de otros códigos para tener en cuenta todas las posibilidades.

hace poco tiempo vi una declaración de un prototipo de un método de una clase <-(no se puede ser más específico?) jeje. que era de la siguiente forma

Código:
class myClass{

   myMethod(const int &integer) const
   {
      //..............
   }
};
el const del argumento es claro, en toda la función se desea que no se modifique la variable. pero.... y el const que va después del prototipo? que pasa con él? para qué sirve? es necesario? podría ser implícito si no se declarase?
alguien me puede ayudar?

jeje lo siento, me estoy pasando con las preguntas ...... no?.
__________________
Mucha seguridad nunca es suficiente.... Por una red segura
El señor ilustre obscurece nuestras mentes
Usas Linux? http://www.dudalibre.com/gnulinuxcounter
  #2 (permalink)  
Antiguo 12/07/2009, 16:28
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 16 años, 5 meses
Puntos: 61
Respuesta: duda sobre const en c++

Si una clase tiene varios miembros internos, es posible que algunos metodos los modifiquen, mientras que otros solo lean su contenido (y otros, ambos).

Aquellos metodos que son marcados como "const" se comprometen a no modificar los miembros de la clase. Aquellos no marcados con const tienen permiso para hacerlo.
Por ello, un metodo marcado como const no puede invocar otro metodo que no este marcado como const. Un metodo const solo puede llamar a metodos const.

El compilador chequeará esto, y reclamara cada vez que se use un metodo no-const al interior de un metodo const.

Usualmente el marcar un metodo como const deberia hacerse al diseñar la clase y no al terminar de implementarla, pues esto ultimo usualmente generara una "bola de nieve" de modificaciones de codigo, para liberarse de los errores de compilacion.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:49.