【问题标题】:c++ compile error "redefinition of", need help to find itc++编译报错“redefinition of”,需要帮助才能找到
【发布时间】:2011-09-11 11:02:44
【问题描述】:

很久没用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

我检查了包含保护,它似乎是正确的。

谁能把我引向正确的方向?

【问题讨论】:

    标签: c++ include compiler-errors


    【解决方案1】:

    您为两个参数使用了相同的名称:

    ... Vector3d delta, Vector3d delta);
    

    【讨论】:

      猜你喜欢
      • 2012-01-18
      • 2011-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-24
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      相关资源
      最近更新 更多