¿Por qué es necesario inicializar el miembro de datos constantes de una clase en el constructor?

Quiero saber por qué los miembros de datos constantes de una clase deben inicializarse en el constructor y ¿por qué no en otro lugar? ¿Cuál es el impacto de hacerlo y no hacerlo?

También veo que solodatos integrales constantes estáticos se puede inicializar dentro de la clase aparte de que ninguno de los miembros de datos se puede inicializar dentro de la clase.

por ejemplo: - Supongamos que a continuación es mi declaración de clase

class A{
     int a; // This we can initialize at the constructor or we can set this member by calling "vSet" member function
     const int b;
     static const int c = 10; //This works fine
public:
     A();
     ~A();
     void vSet(int a);
     int iAdd();
     void vDisplay();    
};

Y el constructor se define como se menciona a continuación:

Sección editada: Como el ejemplo de definición del constructor anterior era incorrecto

 A::A():a(1),b(9){}

Por favor, corríjame si estoy equivocado. Gracias por adelantado.

Respuestas a la pregunta(7)

Su respuesta a la pregunta