Why am I getting this redefinition of class error?

Viewed 180467

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?

9 Answers

If you are having issues with templates or you are calling the class from another .cpp file

try using '#pragma once' in your header file.

Either try adding #pragma once at the top of your file, or the old way... Place this at the top of your code

#ifndef GAME_H //ensuring that this object is only initialized once
#define GAME_H 

and this below the last line

#endif

Which will ensure one initialization of the class

Related