Почему постоянный элемент данных класса должен быть инициализирован в конструкторе?

Я хочу знать, почему константный член данных класса должен быть инициализирован в конструкторе и почему не где-то еще? Какое влияние это делает, а не делает?

Я также вижу, что толькоstatic constant integral data может быть инициализирован внутри класса, за исключением того, что не члены данных могут быть инициализированы внутри класса.

for eg:- Suppose below is my class declaration

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

And the constructor is defined as mentioned below:-

Edited Section: As previous constructor definition example was wrong

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

Пожалуйста, поправьте меня, если я ошибаюсь. Заранее спасибо.

Ответы на вопрос(7)

Ваш ответ на вопрос