Я работаю над назначением школы, и я получаю эту странную ошибку (я довольно новичок в C++).LNK2005: уже определенная ошибка
Я должен найти первое значение между 1500 и 1900. Когда я строю его в первый раз, все нормально, но когда я построить его в следующий раз, я получаю эту ошибку:
error LNK2005: "bool __cdecl greaterThan1500SmallerThan1900(int)" ([email protected]@[email protected]) already defined in Lab5.obj
Если бы я затем немного измените код (измените тип в функции предиката на двойной), он снова создает один раз.
template<typename T>
T MyStlClass<T>::myFindIf(list<T> &theList) {
list<T>::iterator it = find_if(theList.begin(), theList.end(), greaterThan1500SmallerThan1900);
return *it;
}
bool greaterThan1500SmallerThan1900(int value){
return (value >= 1500 && value <= 1900);
}
Я прочитал на этом сайте, что это потому, что я включаю файл «.cpp», но с другой стороны, я также читал, что мне нужно включить файл «.cpp», когда я использую шаблоны.
Пожалуйста, публикуйте код, кажется, что вы добавляете заголовочный файл, который уже определяет функцию 'bool largeThan1500SmallerThan1900 (int) {}' –