Manyotherquestions beschäftigen Sie sich damit, wie Sie eine Variable zuweisen, indem Sie sie in einer Headerdatei deklarieren und in einer CPP-Datei definieren (zuordnen).Deklarieren und definieren Sie statische Variable in C++ Header?
Was ich tun möchte, ist keine .cpp-Dateien für meine Klasse zu verwenden, und alle Funktionen als Inline (in der Header-Datei) zu definieren. Das Problem, auf das ich stoße, ist, wie man statische Member-Variablen definiert, so dass selbst dann, wenn die .h-Datei in mehreren Kompilierungseinheiten enthalten ist, der Linker-Fehler "erster hier definiert" nicht auftritt.
Ich bin offen für Präprozessor Hacks, etc., wenn es die Arbeit erledigt. Ich möchte nur alle CPP-Dateien vermeiden.
Wenn es darauf ankommt, verwende ich GCC.
Sie deklarieren Ihre Variable einfach als 'statisch'. Eine neue Instanz der Variablen wird in jeder Übersetzungseinheit erstellt, in die Sie die Header-Datei einfügen. Bei der Verknüpfungszeit werden jedoch keine Konflikte auftreten, da die Objekte über statische Verknüpfungen verfügen. –
Nein, statische Datenelemente haben eine externe Verknüpfung. – jrok
"Definieren (Zuweisen)": ** Definieren ** und ** Zuweisen ** sind zwei verschiedene Dinge. –