为什么这会给出一个或多个多重定义的符号"错误

时间:2014-08-29 19:18:08

标签: c++ class variables header symbols

我有两个简单的文件。 Ball.h和Ball.cpp。

当我编译程序时,我得到变量int x和int y的错误“一个或多个多重定义的符号”。

我明白如果我将这些变量设为静态,那么错误就会消失,我不明白为什么。如果这是重复的话我很抱歉,但我无法理解我在其他地方读过的解释。

我有另一个类“Player”,它也使用int x和int y变量。这是问题的原因吗?

Ball.cpp:

#include <SDL.h>
#include "Ball.h"

const int BALL_SIZE = 20;
static int dx, dy;
static int x, y;

void Ball::Init(){
    x = 320;
    y = 240;
    dx = 1;
    dy = 1;
}

void Ball::Tick(){
    x += dx;
    y += dy;
}

void Ball::Render(SDL_Renderer* render){

}

void Ball::ReverseVelocity(){

}

Ball.h

#include <SDL.h>

class Ball{
    public:
        void Init();
        void Tick();
        void Render(SDL_Renderer* render);
        void ReverseVelocity();
};

0 个答案:

没有答案