• Sábado 20 de Abril de 2024, 05:51

Autor Tema:  Duda con sentencia de constructor C++  (Leído 2221 veces)

gongomgra

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Duda con sentencia de constructor C++
« en: Martes 4 de Diciembre de 2012, 00:45 »
0
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++
  1. class S
  2. {
  3. int x;
  4.  
  5. public:
  6. int getValue() { return x; }
  7. void setValue(int temp) { x = temp; }
  8. S(int temp) : x(temp) {}
  9. ~S() {}
  10. };
  11.  

¿cuál es el significado de la línea 8?

Código: [Seleccionar]
S(int temp) : x(temp){}

Muchas gracias de antemano,
gongomgra

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re:Duda con sentencia de constructor C++
« Respuesta #1 en: Martes 4 de Diciembre de 2012, 01:22 »
0
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: [Seleccionar]
    S(int temp) {x = temp;}

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

gongomgra

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re:Duda con sentencia de constructor C++
« Respuesta #2 en: Martes 4 de Diciembre de 2012, 13:17 »
0
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

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re:Duda con sentencia de constructor C++
« Respuesta #3 en: Martes 4 de Diciembre de 2012, 17:04 »
0
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

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 :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

gongomgra

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re:Duda con sentencia de constructor C++
« Respuesta #4 en: Miércoles 5 de Diciembre de 2012, 18:34 »
0
He vuelto a leer su respuesta con más tranquilidad y ya la entiendo. Muchísimas gracias.