C ++ ошибка компиляции "переопределение", нужна помощь, чтобы найти его - PullRequest
0 голосов
/ 11 сентября 2011

я давно не использую C ++ и не очень дружу с этим.Я возобновляю свой старый проект и пытаюсь скомпилировать его, но при запуске Makefile получаю следующую ошибку:

g++ -W -ggdb3 -Wall -ansi -pedantic  -c main.cpp
In file included from Entity3d.h:4,
                 from SceneManager.h:10,
                 from main.cpp:5:
Entity.h:82: warning: unused parameter ‘rot’
Entity.h:82: warning: unused parameter ‘delta’
Entity.h:82: warning: unused parameter ‘scale’
In file included from SceneManager.h:20,
                 from main.cpp:5:
GamePlayer.h:52: error: redefinition of ‘Vector3d delta’
GamePlayer.h:52: error: ‘Vector3d delta’ previously declared here
main.cpp:7: warning: second argument of ‘int main(int, char*)’ should be ‘char **’
make: *** [main.o] Error 1

Где GamePlayer.h: 52 равно:

void Behavior(Vector3d rot, Vector3d delta, Vector3d delta);

Поведение переопределяет функцию своего родительского класса (Entity.h):

virtual void Behavior(Vector3d rot, Vector3d delta, Vector3d scale) {};

Иерархия классов выглядит следующим образом:

class GamePlayer : public Entity3d
class Entity3d : public Entity

Я проверил охранники включения, и, похоже,быть правильным.

Кто-нибудь может направить меня в правильном направлении?

1 Ответ

6 голосов
/ 11 сентября 2011

Вы использовали одно и то же имя для двух параметров:

... Vector3d delta, Vector3d delta);
...