[C con Clase] calificador const

Steven Davidson steven en conclase.net
Lun Jun 4 02:41:14 CEST 2007


Hola Rodolfo,

El pasado 2007-06-03 23:38:58, rodolfo escribió:

r> /*
r> Hola a todos,
r> Como les va, ojala puedan ayudarme con esto.
r> cuando corro este programa de mas abajo el compilador me devuelve este 
r> error:
r> "non-member function `const char& DevuelveElemento(int, const char*)' cannot 
r> have `const' method qualifier "
r> ¿porque razon no se le puede aplicar el calificador const al final de la 
r> funcion,
r> si esta funcion no modifica ningun dato?
r> Si le quito el const del final funciona, pero ¿porque no se puede poner?

No tiene sentido crear una función constante si no es miembro de una estructura. Las funciones constantes son aquéllas que no modifican ningún dato miembro de tal estructura. Si la función es global, y por tanto no es miembro de una estructura, entonces no hay datos miembros que modificar. Por esta razón, no tiene sentido indicar que la función es constante.

r> Como siempre les agradezco de antemano y que Dios los bendiga.
r> Rodolfo
r> */
r> #include <iostream>
r> using namespace std;
r> const char& DevuelveElemento( const int, const char* ) const;  // prototipo

Como ya has notado, elimina el último 'const', ya que la función no es miembro de una estructura.


Espero haber aclarado la duda.

Steven


Más información sobre la lista de distribución Cconclase