c++ - [链接器错误] 未定义对 `Set<std::string>::contains(std::string const&) const' 的引用

标签 c++

我有一个如下所示的类:

  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' 

当我编译它时,我该如何修复这个错误。谢谢

最佳答案

那么,您应该实现模板类 Set 的函数 contains()

请记住,模板函数必须内联定义,因此您希望将定义放在同一个头文件中。

关于c++ - [链接器错误] 未定义对 `Set<std::string>::contains(std::string const&) const' 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9214864/

相关文章:

c++ - 根据标准,这个 constexpr offset_of 的定义是否正确?

c++ - 什么是 __pragma 以及 __pragma 和 #pragma 之间的区别是什么

前面为 0 的 C++ int 会更改整个值

c++ - 部分类模板特化 c++11

带有 OpenMP 的 C++ 尽量避免紧密循环数组的错误共享

c++ - 全景影像构建

c++ - 移出的 xvalue 究竟需要什么?

c++ - 在 C++ 中删除带有 vector<const char *> 的类

c++ - 如何抑制第三方源文件中的警告?

c++ - 如果不知道其参数类型,如何默认一个特殊的成员函数?