Warum muss man den const-Bezeichner zur Definitionszeit wiederholen, wenn die Deklaration als const an einer anderen Stelle erfolgt?

Nach dem Lösendieses einfache Problem Musste ich fragen:

-> In der H-Datei einer Klasse ex ist ein const-Static-Member definiert, z. :

class ex {
    const static int my_ex;
};

-> In der CPP-Datei wird der Wert angegeben

ex::my_ex = 32;  

Und dann bekommt man den Fehler "widersprüchliche Deklarationen" (sowie "benennt keinen Typ"). Ich verstehe, dass dasDefinitio in der CPP-Datei ist auch einErklärun was einen Konflikt erzeugt, der vom Linker aus gesehen wird, ABER warum nur über das const -Spezifizierer (und Typ) und nicht dasstatisc einer ? Ich muss nur @ schreib

const int ex::my_ex = 32;

, um es zu kompilieren. Aber nicht statisch ... Warum nicht? Warum kann ich nicht einfachdefiniere und nicht wiederholenErklärun verwandte Schritte (Typ, spezifische Bezeichner)?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage