Programación General > C/C++
Darle un valor a una var dentro de la definicion de una clas
(1/1)
Alfonsos1:
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:
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++ --- class miclase{public: int mivariable; // Este metodo es el constructor, si te fijas // tiene el mismo nombre que tu clase miclase() { mivariable = 4; } };
Saludos :)
Alfonsos1:
ahora si! :good:
alb:
Holà,
Para darle valor en el constructor, suele hacerse con una inicializacion-list :
--- Código: C++ ---class my_class{ public: my_class():my_var(4) {} private: int my_var;}; Cuando se escribe :
--- Código: C++ ---my_class::my_class(){ my_var = value;} 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++ ---my_class::my_class():my_var(value){} 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++ ---class my_class{public : my_class() {// aquì i==4 } private: int i = 4;};
Navegación
Ir a la versión completa