Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Const De C++

Iniciado por Miki, 16 de Febrero de 2004, 10:52:20 PM

« anterior - próximo »

Miki

Nada, era solo para saber si hay diferencia entre estos 2 parámetros pasados por referencia:

int MiFuncion( const cMiTipo &dato )
int MiFuncion( cMiTipo const &dato )

Es k lo he visto ya varias veces y estoy intrigado. En las ayudas oficiales no he visto el caso XD

Salud2

MChiz

 Hola!

Estas seguro de que eso que dices se puede hacer? Yo lo he visto asi:

int MiFuncion( const cMiTipo *dato )
int MiFuncion( cMiTipo const *dato )

Y tiene sus diferencias.

La primera funcion recibe un puntero a un dato cMiTipo, donde el contenido del puntero es constante ( se puede cambiar hacia donde apunta el puntero, pero no el contenido de lo que apunta ).
La segunda funcion recibe un parametro a un dato cMiTipo, donde el puntero en si es constante, y no su contenido. Es decir, puedes hacer *dato = ( lo que sea ), pero no puedes hacer ++dato, por ejemplo.

Y tambien podrias hacer:

int MiFuncion( const cMiTipo const *dato )

Donde todo vive en constancia y harmonia =P

Por eso al principio del post te preguntaba si estabas seguro que lo has visto con referencia, porque me extraña mucho hacer:

int MiFuncion( cMiTipo const &dato )

Porque no puedes mover una referencia, me explico?

Espero que te haya aclarado algo.

Un saludote!!

gdl

 
Hola, hola....

Creo que MChiz se acerca mucho....

Esta web puede ser interesante:

http://www.geocities.com/spur4444/prog/con...d_pointers.html

Sobre todo el "listing 3".

De hecho, el escribir


int MiFuncion( const cMiTipo *dato )


es llamado "estilo C++" y el poner


int MiFuncion( cMiTipo const *dato )


es llamado "estilo C". Pero claro, sólo son estilos. La semántica es la misma. Lo que no es lo mismo es poner


int MiFuncion( cMiTipo *const dato )


a no ser que no sea un puntero, sino una referencia... pero eso es otro rollo. Ya no quiero liar mas.

Feliz programación.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.