Duda sobre progrmacion C++

Iniciado por lJvRl, 18 Abril 2013, 13:53 PM

0 Miembros y 1 Visitante están viendo este tema.

lJvRl

Alguien sabe cuál es la diferencia entre estas tres funciones?
const A * function();
A* const  function();
A const * function();


Gracias por adelantado!!

rir3760

Cita de: lJvRl en 18 Abril 2013, 13:53 PMAlguien sabe cuál es la diferencia entre estas tres funciones?
¿Es tu tarea?

De las tres declaraciones dos de ellas son iguales (en ellas el orden de los calificadores no afecta). Básicamente es un ejercicio para practicar con los tipos A) puntero a objeto constante y B) puntero constante a objeto.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

amchacon

La primera es una funcion que devuelve un puntero a un objeto constante.

La segunda es una función que devuelve un puntero constante.

La tercera es una variedad sintáctica de la segunda (se te permite poner el * en el tipo o en el const).
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

BlackM4ster

A const * function(); <- Esto ni compila  :¬¬
const A * function();  <- A es una constante (no cambia el valor en todo el programa) que se multiplica con el resultado de funcion
A* const  function(); <- Lo mismo que la segunda
- Pásate por mi web -
https://codeisc.com

amchacon

Cita de: Black Master en 18 Abril 2013, 15:43 PM
A const * function(); <- Esto ni compila  :¬¬
const A * function();  <- A es una constante (no cambia el valor en todo el programa) que se multiplica con el resultado de funcion
A* const  function(); <- Lo mismo que la segunda
Todas compilan (al menos en C++). Y estamos hablando de declaraciones, no de operaciones ;)
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

BlackM4ster

Cita de: lJvRl en 18 Abril 2013, 13:53 PM
Alguien sabe cuál es la diferencia entre estas tres funciones?

Seguro que son declaraciones? por que parecen operaciones...
- Pásate por mi web -
https://codeisc.com

amchacon

Cita de: Black Master en 18 Abril 2013, 15:50 PM
Seguro que son declaraciones? por que parecen operaciones...
Nada más por el punto y coma se ve que son declaraciones de prototipos.

Por otro lado no se puede usar const en una operación, en todo caso podrías hacer un cast (const int).
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

lJvRl

que cracks!!!

Muchas gracias a todos!


lJvRl

Cita de: amchacon en 18 Abril 2013, 15:42 PM
La primera es una funcion que devuelve un puntero a un objeto constante.

La segunda es una función que devuelve un puntero constante.

La tercera es una variedad sintáctica de la segunda (se te permite poner el * en el tipo o en el const).

Una pregunta:

la tercera es una variedad sintactica de la segunda o de la primera?

Es que he visto esta web: http://www.zator.com/Cpp/E4_2_1e.htm

Y me ha parecido esto.

Gracias!!

amchacon

Cita de: lJvRl en 18 Abril 2013, 17:13 PM
Una pregunta:

la tercera es una variedad sintactica de la segunda o de la primera?

Es que he visto esta web: http://www.zator.com/Cpp/E4_2_1e.htm

Y me ha parecido esto.

Gracias!!
De las segunda.

Pero me refiero al orden que has puesto en el primer post.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar