я получил следующую ошибку
"Ошибка Fehler 9 LNK2019: Verweis auf nicht aufgelöstes externes Symbol" "public: bool __cdecl gameClass :: getAttribute (класс std :: basic_string, class std :: allocator>)" (? $ GetAttribute @_N @gameClass @@QEAA_NV? $ basic_string @DU? $ char_traits @D @std @@V? $ allocator @D @2 @@std @@@Z) "в функциях" main ". C:\Users\Weexe\documents\visual studio 2010\Projects\Двигатель\Двигатель\main.obj Двигатель "
Мой код class.h
template <typename T> T getAttribute(std::string attribute);
class.cpp
template <typename T>
T gameClass::getAttribute(std::string attribute)
{
std::map<std::string,int> matchAttribute;
matchAttribute["windowTitle"]=1;
matchAttribute["windowSizeX"]=2;
matchAttribute["windowSizeY"]=3;
matchAttribute["isMenue"]=4;
switch(matchAttribute[attribute])
{
case 1:
return this->windowTitle;
break;
case 2:
return this->windowSizeX;
break;
case 3:
return this->windowSizeY;
break;
case 4:
return this->isMenue;
break;
}
}
У кого-нибудь есть простуда, как исправить эту ошибку? Я думаю, что это синтаксическая ошибка или что-то вроде:/
Шаблоны могут быть реализованы только в файлах заголовков (.h,.hpp,.inl) и т.д. Это означает, что код в классе.cpp wil должен быть "связан" с кодом в классе.h, чтобы создать новый файл заголовка.