我有两个班级:ClassA 和 ClassB。ClassB 继承 ClassA。classa.cpp 和 classb.cpp 都包含一个 utility.h-header 文件,以便我可以使用该方法
round(double number, int precision)
来自两个 .cpp 文件中的实用程序.h。
像这样在 ClassA 中使用它时:
double roundANumber(double number, int precision)
{
return Utilities::round(number, precision);
}
它工作正常。但是当我尝试像这样在 ClassB 中使用它时:
double roundAnotherNumber(double number, int precision)
{
return Utilities::round(number, precision);
}
链接器给了我错误:
error LNK2005: "double __cdecl Utilities::round(double,int)" (?
round@hUtilities@@YANNH@Z) already defined in classa.obj
我似乎找不到原因。
先感谢您。
编辑:补充说 Utilities.h 只包含这个
#include <cmath>
namespace MathUtilities {
double round(double number, int precision) {
int precisionFactor = std::pow(10, precision);
return std::round(number * precisionFactor) / precisionFactor;
}
}