Apologies for the code dump:
gameObject.cpp:
#include "gameObject.h" class gameObject { private: int x; int y; public: gameObject() { x = 0; y = 0; } gameObject(int inx, int iny) { x = inx; y = iny; } ~gameObject() { // } int add() { return x+y; } };
gameObject.h:
class gameObject { private: int x; int y; public: gameObject(); gameObject(int inx, int iny); ~gameObject(); int add(); };
Errors:
||=== terrac, Debug ===| C:\terrac\gameObject.cpp|4|error: redefinition of `class gameObject'| C:\terrac\gameObject.h|3|error: previous definition of `class gameObject'| ||=== Build finished: 2 errors, 0 warnings ===|
I can't figure out what's wrong. Help?
Error C2011 – 'ClassName' : 'class' type redefinition Common causes include circular referencing and including a header file more than once (see example below). How to fix it? You can fix this error by ensuring that the class you are including does not get included more than once.
No. int a = foo(); or int a = 3; , inside main() , is a new variable that is also called a . A redefinition is an attempt to redefine the same variable, e.g.: int a = 5; int a = 6; Also.
C++ code. Use CamelCase for all names. Start types (such as classes, structs, and typedefs) with a capital letter, other names (functions, variables) with a lowercase letter.
You're defining the class in the header file, include the header file into a *.cpp file and define the class a second time because the first definition is dragged into the translation unit by the header file. But only one gameObject class definition is allowed per translation unit.
You actually don't need to define the class a second time just to implement the functions. Implement the functions like this:
#include "gameObject.h" gameObject::gameObject(int inx, int iny) { x = inx; y = iny; } int gameObject::add() { return x+y; }
etc
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With