Holà,
Para darle valor en el constructor, suele hacerse con una
inicializacion-list :
class my_class
{
public:
my_class():my_var(4)
{}
private:
int my_var;
};
Cuando se escribe :
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 :
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 :
class my_class
{
public :
my_class()
{// aquì i==4
}
private:
int i = 4;
};