Ich versuche, einen globalen Namespace in einer Header-Datei global.h
zu definieren.Mehrfache Definition bei Verwendung von Namespace in Header-Datei
...
namespace g {
const int g_0 = 0;
const int g_1 = 1;
}
...
wenn man sich nur #include "global.h"
in anderer CPP-Datei Compiler
multiple definition of g::g_0
multiple definition of g::g_1
einem Fehler gibt Wenn ich versuche, zum Beispiel g_0
und g_1
in anderen CPP-Dateien zu verwenden.
int g_0_copy = g::g_0;
int g_1_copy = g::g_1;
Es wirft einen Fehler zu sagen:
ISO C++ forbids in-class initialization of non-const static member...
Gibt es etwas Besonderes, wenn Namespace globalen Variable zu deklarieren? (Ich muss C++ 98 in diesem Fall verwenden)
Der Compiler gibt einen Fehler aus, wenn der Namespace zweimal in derselben Kompilierungseinheit enthalten ist. Ansonsten haben die Konstanten eine statische Verknüpfung. –
Dumme Frage. Haben Sie Wächter in der Kopfzeile? – StoryTeller
Benötigen Sie vollen Code. Der Hinweis über "In-Class-Initialisierung" sagt mir, dass es mehr gibt, als Sie uns zeigen. – SergeyA