Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 20.07.2005, 02:07 Titel: [ISO-C++] namespace Problem |
|
|
Wenn ich in seperat ausgelagerte namespace verwenden möchte bekomme ich den Fehler das angeblich die Variablen des namespace bereits deklartiert wurden (LNK1169). Wie kann ich das beheben:
Angenommen deine Dateiaufteilung sieht so aus:
A.h
CPP: | #ifdef _A_HH
#define _A_HH
namespace core
{
int a=0;
int Test();
};
#endif |
A.cpp
CPP: | #include "A.h"
namespace core
{
int Test()
{
return a;
}
}; |
Um den Fehler zu beheben muss man in der Headerdatein (A.h) ein extern vor die Variable schreiben und die Variable in der Sourcedatei (A.cpp) seperat in dem namespace deklarieren:
A.h
CPP: | #ifdef _A_HH
#define _A_HH
namespace core
{
extern int a;
int Test();
};
#endif |
A.cpp
CPP: | #include "A.h"
namespace core
{
int a = 0;
int Test()
{
return a;
}
}; |
_________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|