Por que o membro de dados constante de uma classe precisa ser inicializado no construtor?

Eu quero saber porque membro de dados constante de uma classe precisa ser inicializado no construtor e porque não em outro lugar? Qual é o impacto de fazê-lo e não fazê-lo?

Eu também vejo que apenasdados integrais constantes estáticos pode ser inicializado dentro da classe que não seja o non dos membros de dados podem ser inicializados dentro da classe.

por exemplo: - Suponha abaixo a minha declaração de classe

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();    
};

E o construtor é definido como mencionado abaixo:

Seção Editada: Como o exemplo anterior de definição de construtor estava errado

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

Por favor corrija-me se eu estiver errado. Desde já, obrigado.

questionAnswers(7)

yourAnswerToTheQuestion