Programación General > C/C++

 Duda con sentencia de constructor C++

(1/1)

gongomgra:
Hola a todos,

hace poco que he empezado a leer sobre programación en C++ y me ha surgido una duda con un código que he visto en un libro. Es la primera vez que viene esta construcción y por desgracia no viene explicada.

En el siguiente código,

--- Código: C++ ---class S{int x; public:int getValue() { return x; }void setValue(int temp) { x = temp; }S(int temp) : x(temp) {}~S() {}}; 
¿cuál es el significado de la línea 8?


--- Código: ---S(int temp) : x(temp){}

--- Fin del código ---

Muchas gracias de antemano,
gongomgra

ProfesorX:
Hola gongomgra bienfvenido al foro.

Es facil

S es el nombre del metodo costructor de tu clase

x(temp) es una manera abreviada de asignar los valores de los parametros del constructor a la variable miembro x.

Mas claro, seria equivalente a poner:


--- Código: ---    S(int temp) {x = temp;}

--- Fin del código ---

Saludos :)

gongomgra:
Hola ProfesorX, muchas gracias por la bienvenida y la ayuda.

Discúlpeme, pero sigo sin entender por qué aparece la asignación tras los dos puntos (:) y no en el cuerpo del método (entre los corchetes).

Gracias,
gongomgra

ProfesorX:

--- Cita de: gongomgra en Martes  4 de Diciembre de 2012, 13:17 ---Hola ProfesorX, muchas gracias por la bienvenida y la ayuda.

Discúlpeme, pero sigo sin entender por qué aparece la asignación tras los dos puntos (:) y no en el cuerpo del método (entre los corchetes).

Gracias,
gongomgra

--- Fin de la cita ---

Como te dije, es una abreviacion, es otro metodo de escribirlo, otra sintaxis, realmente no hay mucho que entender fuera de eso.

Es como si me preguntaras que por que escribimos x++ en lugar de x = x + 1.

Si no te gusta la abreviacion puedes escribirlo de manera completa, nada te lo impide, para que tengas mayor claridad, pero si lo encuentas en codigo hecho por otras personas, por lo menos ya sabes que es equivalente ;)

Saludos :)

gongomgra:
He vuelto a leer su respuesta con más tranquilidad y ya la entiendo. Muchísimas gracias.

Navegación

[0] Índice de Mensajes

Ir a la versión completa