Я получаю сообщение об ошибке компоновщика при использовании ключевого слова this
:
Ошибка 1 ошибка LNK2001: неразрешенный внешний символ "public: virtual void __thiscall GameObject::update(void)" (?update@GameObject@@UAEXXZ) Преобразование Main.obj Pong C++
это код
class GOBall: public GameObject
{
public:
static const GLint SIZE;
static const GLfloat MAX_SPEEDX;
static const GLfloat MAX_SPEEDY;
static const GLfloat DAMPING;
GLfloat velX;
GLfloat velY;
GLfloat startX;
GLfloat startY;
GOBall(GLfloat x, GLfloat y);
void update();
void reverseX(GLfloat center);
void reverseY();
void resetPosition();
};
const GLfloat GOBall::DAMPING = 0.05f;
const GLfloat GOBall::MAX_SPEEDX = 4;
const GLfloat GOBall::MAX_SPEEDY = 8;
const GLint GOBall::SIZE = 16;
GOBall::GOBall(GLfloat x, GLfloat y)
{
this->x = x;//The Error appeared after filling in this function
this->y = y;
this->sx = SIZE;
this->sy = SIZE;
startX = x;
startY = y;
velX = -MAX_SPEEDX;
velY = 0;
}
Переменная x находится в классе GameObject.
class GameObject
{
protected:
GLfloat x, y,sx, sy;
public:
virtual void update();
void render();
GLfloat getX();
GLfloat getY();
GLfloat getSX();
GLfloat getSY();
GLfloat getCenterY();
};
Как некоторые люди могут заметить, я пытался воссоздать приложение Java Pong с помощью этих руководств, чтобы улучшить свои знания в OpenGL и C++ https://www.youtube.com/playlist?list=PL513808FE7D9A5D68.
И я знаю, что, вероятно, проще реализовать эту игру в файлах заголовков/cpp, но я не понимаю, какой заголовок класса включить первым, потому что есть четыре класса GameObject
, и у них есть переменные, летающие повсюду между их экземплярами.