LNK2019 Ошибка в шаблонной функции моего класса

0

я получил следующую ошибку

"Ошибка 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;
}
}

У кого-нибудь есть простуда, как исправить эту ошибку? Я думаю, что это синтаксическая ошибка или что-то вроде:/

  • 0
    Также похоже, что кто-то подшутил над вами и изменил язык ОС на немецкий.
  • 1
    Это не шутка, я немец.
Показать ещё 1 комментарий
Теги:
c++11
lnk2019

1 ответ

0
Лучший ответ

Шаблоны могут быть реализованы только в файлах заголовков (.h,.hpp,.inl) и т.д. Это означает, что код в классе.cpp wil должен быть "связан" с кодом в классе.h, чтобы создать новый файл заголовка.

  • 0
    О, приятно знать! так что мне нужно только мимо моего кода в заголовочном файле? Я попробую.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню