【发布时间】:2013-07-12 21:18:19
【问题描述】:
我第一次在一个项目中使用多个 C++ 文件。两者都需要包含一个受保护的 (#ifndef) 头文件。但是,当我这样做时,会出现多重定义错误。
我有两个直接调用标头的 .cpp 文件,一个间接调用(另一个包含它),然后是另外两个包含它的头文件。
那么我需要做些什么来消除错误?
错误:
obj\Debug\main.o||在函数
Z14sortLibQtyTest4BookS_':| [PATH]\miscFuncs.h|16|multiple definition ofsortLibQtyTest(Book, Book)'
代码:
bool sortLibQtyTest(Book a, Book b){ return a.getQty() > b.getQty(); }
应该提到,这不是唯一给我带来问题的功能,可能有十多个,有些不是那么简短和甜蜜。此外,多个文件中需要这些函数。
【问题讨论】:
-
如果该函数不是类的一部分并在标头中定义,则它应该是内联的。
-
标记方法
inline,或将定义放入.cpp文件中。 -
查看附加信息。本来应该说的。
-
这两条信息都没有改变任何东西。
标签: c++ multiple-definition-error