Mejores prácticas predeterminadas de los valores de los miembros

¿Es una buena práctica al escribir código C ++ 11 para establecer valores predeterminados para los miembros de la clase en el archivo de encabezado de la clase?

¿O es mejor hacer esto en el constructor de la clase?

EDITAR:

Quiero decir:

foo.h:

#include <string>

using std::string;

class Foo{
    private:
        string greet = "hello";
    public:
        Foo();
};

VS

foo.cpp (por supuesto, con el archivo de encabezado necesario, pero sin la inicialización en clase):

Foo::Foo(){
    greet = "hello";
}

¿Cuál es mejor y por qué?

Respuestas a la pregunta(3)

Su respuesta a la pregunta