Warum müssen konstante Datenelemente einer Klasse beim Konstruktor initialisiert werden?

Ich möchte wissen, warum konstante Datenelemente einer Klasse beim Konstruktor initialisiert werden müssen und warum nicht woanders? Was bedeutet das und was nicht?

Das sehe ich auch nurstatische konstante Integraldaten kann innerhalb der Klasse initialisiert werden, außer dass nicht die Datenelemente innerhalb der Klasse initialisiert werden können.

Zum Beispiel: - Angenommen, unten ist meine Klassendeklaration

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

Und der Konstruktor ist wie folgt definiert:

Bearbeiteter Abschnitt: Wie im vorherigen Konstruktordefinitionsbeispiel falsch

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

Bitte korrigieren Sie mich, wenn ich falsch liege. Danke im Voraus.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage