我意识到类似的问题之前已经被问到过,但是我阅读了其中的一些,但仍然没有看到我要出错的地方。当我简单地写我的类而不将原型与定义分开时,一切正常。”没有使用模板参数“
template<class T> class VisitedSet {
public:
VisitedSet();
int getSize();
void addSolution(const T& soln);
void evaluate();
private:
vector<T> vec;
int iteration;
};
而作为这给了我这个错误的定义的例子:
int VisitedSet::getSize() {
return vec.size();
我以前从未取得了模板类,当我分开的原型和定义如下图所示的问题发生,所以请原谅,如果这里的问题是微不足道的。
注意:在大多数情况下,您希望头中可以访问模板成员函数的定义。如果定义在标题中,请记住将它们标记为“inline”(或者在模板类定义中定义它们),如果它们不是,请仔细考虑并确保不需要标题中的定义(您可以如果在包含要使用该模板的* all *类型的定义的翻译单元中显式实例化,则不需要头中的定义)。我担心你很快会得到这个... – 2012-04-21 21:50:25