Hi guys,
I wonder if you can help me out and point me to the area of my brain that is defective.
Basically what I have is the following:
Code://main.h #ifndef _MAIN_H_ #define _MAIN_H_ #include "extra.h" #endifCode://main.cpp #include "main.h" int main() { ext_implement = new Extra(); return 0; }Code://extra.h #ifndef _EXTRA_H_ #define _EXTRA_H_ class Extra { public: Extra(); void DoSomething(); private: }; Extra *ext_implement; #endifCode://extra.cpp #include "extra.h" Extra::Extra() { } void Extra::DoSomething() { }Code://another.h #ifndef _ANOTHER_H_ #define _ANOTHER_H_ #include "extra.h" class Another { public: Another(); }; #endifAnd here is the errors I receive:Code://another.cpp #include "another.h" Another::Another() { ext_implement->DoSomething(); }
obj\Debug\main.o: In function `main':
C:/Personal/Code/Test/main.cpp:3: multiple definition of `ext_implement'
obj\Debug\extra.o:C:/Personal/Code/Test/extra.cpp:3: first defined here
obj\Debug\another.o: In function `ZN7AnotherC2Ev':
C:/Personal/Code/Test/another.cpp:3: multiple definition of `ext_implement'
obj\Debug\extra.o:C:/Personal/Code/Test/extra.cpp:3: first defined here
I realise that I am defining ext_implement multiple times due to me having the line
#include "extra.h" (where ext_implement is defined) in a few different places, but I am
not sure of the right way to do it.
I need to have access to that variable in a few different places, so I don't mind what the solution is really. As long as there is one
If you need more detail please let me know.
Any pointers would be greatly appreciated.
Thanks in advance...
Shiver



LinkBack URL
About LinkBacks




