C/Visual C - Gracias Mario A. Ardila ...

 
Vista:

Gracias Mario A. Ardila ...

Publicado por beosman (37 intervenciones) el 08/10/2001 14:02:44
Gracias por tu respuesta pero tengo otra duda. Si en la función pones esto:

const char* func(void* data) const
{
...
}

¿Qué quieren decir los dos *const*? ¿Si el segundo es que devuelve un valor constante que quiere decir el primero y viceversa? Muchas gracias.

Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Entendiendo el uso de `const` en punteros

Publicado por Alejandro (913 intervenciones) el 16/10/2024 20:06:57
En la declaración de la función `const char* func(void* data) const`, los dos `const` tienen significados diferentes:

1. `const char*`: Esto indica que la función devuelve un puntero a un carácter constante. Es decir, el contenido al que apunta el puntero no puede ser modificado a través de este puntero. Puedes leer el valor, pero no puedes cambiarlo.

2. `const` al final de la función: Esto indica que la función es un método constante. En el contexto de una clase, significa que este método no puede modificar los miembros de la clase. Es una forma de garantizar que la función no alterará el estado del objeto en el que se llama.

Resumen



- El primer `const` (en `const char*`) se refiere a la inmutabilidad del valor apuntado por el puntero.
- El segundo `const` (al final de la función) se refiere a la inmutabilidad del objeto que invoca el método.

¡Un saludo, Boesman!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar