小编seb*_*b6k的帖子

对类模板的成员函数的未定义引用

我想在模板类方法中使用迭代器.这是我的代码:(testclass.h)

template<typename T, typename container>
class TestClassX
{
public:
    void gen(typename container::iterator first );
};
Run Code Online (Sandbox Code Playgroud)

和文件testclass.cpp:

template<typename T, typename container>
void TestClassX<T, container>::gen(typename container::iterator first)
{

}
Run Code Online (Sandbox Code Playgroud)

当我尝试运行它时:

TestClassX<unsigned, std::vector<unsigned> > testx;
testx.gen(it);
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

Error:undefined reference to `TestClassX<unsigned int, std::vector<unsigned int, std::allocator<unsigned int> > >::gen(__gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >)'
Run Code Online (Sandbox Code Playgroud)

我用的是mingw32 4.4

我想有一个类可以写入不同的容器,如std :: vector,std :: list,QVector或QList都有STL样式的迭代器.

c++ containers templates stl

7
推荐指数
1
解决办法
4671
查看次数

标签 统计

c++ ×1

containers ×1

stl ×1

templates ×1