• Sábado 18 de Mayo de 2024, 11:08

Autor Tema:  Darle un valor a una var dentro de la definicion de una clas  (Leído 1246 veces)

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Darle un valor a una var dentro de la definicion de una clas
« en: Jueves 30 de Septiembre de 2010, 21:58 »
0
Tengo una clase en la que inicialice una variable, pero quiro darle un valor a esa variable dentro de la definicion de la clase, para que cada ves que se cree un objeto la variable comience con un valor.

quiero que cada ves que se cree un objeto de "miclase", que comience con una variable "mivariable" igual a 4

seria algo asi:

class miclase
{
 public:
   int mivariable;
   mivariable=4;
};

pero eso me da error...

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Darle un valor a una var dentro de la definicion de una clas
« Respuesta #1 en: Viernes 1 de Octubre de 2010, 01:03 »
0
Dale valor a tu variable dentro del metodo costructor de tu clase. Si no sabes que es un constructor, investiga sobre constructores y destructores en C++, solo te dire que el metodo costructor de una clase debe llevar estrictamente como nombre, el nombre de tu clase, asi se diferencia de los demas metodos de una clase:

Código: C++
  1.  
  2. class miclase
  3. {
  4. public:
  5.     int mivariable;
  6.  
  7.     // Este metodo es el constructor, si te fijas
  8.     // tiene el mismo nombre que tu clase
  9.     miclase()
  10.     {
  11.         mivariable = 4;
  12.     }
  13.  
  14. };
  15.  
  16.  
  17.  

Saludos :)

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

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Re: Darle un valor a una var dentro de la definicion de una clas
« Respuesta #2 en: Viernes 1 de Octubre de 2010, 15:37 »
0
ahora si!  :good:

alb

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: Darle un valor a una var dentro de la definicion de una clas
« Respuesta #3 en: Sábado 2 de Octubre de 2010, 09:45 »
0
Holà,
Para darle valor en el constructor, suele hacerse con una inicializacion-list :
Código: C++
  1. class my_class
  2. {
  3.     public:
  4.     my_class():my_var(4)
  5.     {}
  6.    
  7.     private:
  8.     int my_var;
  9. };
  10.  
Cuando se escribe :
Código: C++
  1. my_class::my_class()
  2. {
  3.    my_var = value;
  4. }
  5.  
lo que pasa es :
1/ construcion del objecto my_var antes de entrar el constructor de my_class
2/ llamada al operador= para darle valor.

Sin embargo, al escribir :
Código: C++
  1. my_class::my_class():my_var(value)
  2. {}
  3.  
solo hay :
1/ llamada al constructor de my_var con el buen valor.

Con los tipos basicos (int, char, short, double, etc...), las dos escrituras son iguales porque construir my_var no cuesta nada. Pero accostumbrarse a escribir lo con inicializacion-list permitira hacerlo sin pensar cuando el typo no sera tan basico.

Otra cosa :
En la futura norma (C++0x) serà valido escribir algo cierca de lo que querias :
Código: C++
  1. class my_class
  2. {
  3. public :
  4.    my_class()
  5.    {// aquì i==4
  6.    }
  7.  
  8. private:
  9.    int i = 4;
  10. };
  11.