In großen Anwendungen kann es leicht zu Namenskonflikten im globalen Namensraum kommen:
// xyz1.h
const float Version 3.4;
// xyz2.h
const int Version 7;
Dies kann man vermeiden, indem man seine globalen Objekte in einer Struktur ablegt:
struct myglobals
{ static const float Version;
static void f();
enum fuzzy {wahr, falsch, weissnicht};
};
// Initialisierung der statischen Var.:
const float myglobals::Version = 3.4;
Benutzung wird dann mit myglobals qualifiziert.