Nach dem Lösen von this simple issue musste ich fragen:Warum muss man den const specifier zur Definitionszeit wiederholen, wenn const anderswo deklariert wird?
-> In der H-Datei in einer Klasse ex ein const statische Mitglied definiert ist, z. :
class ex {
const static int my_ex;
};
-> In der CPP-Datei den Wert
angegebenex::my_ex = 32;
Und dann bekommt man den Fehler "widersprüchliche Erklärungen" (sowie "keine Art Name"). Ich verstehe, dass die Definition in der CPP-Datei ist auch eine Erklärung, die einen Konflikt aus dem Linker aber warum nur über die const Spezifizierer (und Typen) und nicht die statischen gesehen schaffen? Ich muss nur
const int ex::my_ex = 32;
schreiben, um es zu kompilieren. Aber nicht statisch ... Warum nicht? Warum kann ich nicht einfach definieren und nicht wiederholen Deklaration verwandte Schritte (Typ, spezifische Kennungen)?
'statisch' wird nie für Definitionen verwendet. –
Ok ... aber ** warum ** ist wirklich meine Frage ... –
Statisch in der Deklaration und statisch in der Definition bedeuten unterschiedliche Sache. – SergeyA