我有两个简单的文件。 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();
};