У меня есть класс, который выглядеть Понравилось ниже:[Linker ошибка] неопределенная ссылка на `Set <std::string> :: содержит (станд :: строка сопзЬ &) Const»
template<typename T>
class Set{
public:
bool contains(const T& e) const;
};
Когда я сделать член этого класса в другой класс, который является следующим:
class Dfa {
private:
Set<string> F;
public:
bool accepts() const
{
string temp;
return F.contains(temp);
}
};
Ну, это только некоторые функции и операторы функций фактического класса. Может кто-нибудь пожалуйста, скажите мне, почему я получаю сообщение об ошибке:
[Linker error] undefined reference to `Set<std::string>::contains(std::string const&) const'
, когда я скомпилировать его и как я могу исправить эту ошибку. Спасибо
Возможный дубликат [Почему реализация и объявление класса шаблона должны быть в одном заголовочном файле?] (Http://stackoverflow.com/questions/3749099/why-should-the-implementation-and-the -declaration-of-a-template-class-be-in-the) –