我收到如下错误:
FxMathFunctions.h: In function 'FxInt32 IMin(FxInt32, FxInt32)':
FxMathFunctions.h:13: error: redefinition of 'FxInt32 IMin(FxInt32, FxInt32)'
FxMathFunctions.h:15: error: 'FxInt32 IMin(FxInt32, FxInt32)' previously defined here
在FxMathFunctions.h中,我有:
11: struct FxPoint2d;
12:
13: inline FxInt32 IMin(FxInt32 i1,FxInt32 i2)
14: {
15: if (i2 < i1) i1 = i2;
16: return i1;
17: }
FxInt32在我包含的 header 中定义为:
typedef long FxInt32;
我不能由错误决定,如果它说正在重新定义FxInt32或整个函数。
我该如何解决?
更新我在上面添加了行号。
最佳答案
就是说整个函数定义了两次。
我灵敏的调试能力告诉我,您以某种方式递归包括了该 header ,而该 header 没有适当的防范措施。因此,内联函数定义了两次。
关于c++ - C++类重新定义错误帮助,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3098931/