Members - Reputation: 158
Posted 17 December 2012 - 03:54 AM
I've done a couple projects and so far I have just put everything in 1 file because I keep having trouble. This time though Id like to really figure this out so Im hoping someone here can explain it to me. Ive researched it online but its not working out and i just dont understand.
The files I have are: pong.cpp, pong.h, paddle.cpp, and paddle.h
I'm using MS Visual Studio C++ 2010 Express.
I've tried several ways of using #ifndef, #define, #endif and no combination has worked, I just keep getting an error "...already defined in Paddle.obj"
I think I get the basic idea, that if the header file has been defined already, ignore it and skip to the bottom(#endif), otherwise define it, but again no way I have done it is working. I'd love to finally learn this and get a good project created in the next couple days.
Crossbones+ - Reputation: 2056
Members - Reputation: 504
Posted 17 December 2012 - 04:27 AM
The #pragma once and #ifndef #define #endif, only makes sure that a file is included only once, but if you have several declarations of functions globally in the files you will still get definition errors.
Edited by PwFClockWise, 17 December 2012 - 04:40 AM.
Crossbones+ - Reputation: 2906
Posted 17 December 2012 - 04:57 AM
Then you easily can get multiple symbols at link, because the symbol will be defined once for each cpp-file that includes it.
Edited by Olof Hedman, 17 December 2012 - 04:57 AM.
Members - Reputation: 376
Posted 17 December 2012 - 09:23 AM
Edited by landagen, 17 December 2012 - 09:24 AM.