1
我有兩個類:ClassA和ClassB。 ClassB繼承了ClassA。還有包括雙方classa.cpp和classb.cpp,這樣我可以從兩個的.cpp - 文件utilities.h使用的方法在繼承類中使用相同的.h文件時出現C++鏈接器錯誤
round(double number, int precision)
一個utility.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)" (?
[email protected]@@[email protected]) 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;
}
}
謝謝!這解決了我的問題。 – Canna