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)?