尖传染媒介作为模板论据

时间:2011-11-01 00:41:41

标签: c++ templates pointers

我正在做这个项目来管理银行,我正在尝试实现代码来编辑员工对象。

template <class val>
void Bank::updateVector(unsigned int ID, vector<val*> upVector, val* upValue)
{
  deleteByID(ID, upVector);
  upVector.push_back(upValue);
}

这是对函数的调用:

employee *new_employee= new employee(name,birthDate,address,postalCode, NIF,  BI,  phone,  salary,  post,  qualifications, id);
updateVector(id,employees,new_employee);

我收到一个未定义的引用错误:

undefined reference to `void Bank::updateVector<employee>(unsigned int, std::vector<employee*, std::allocator<employee*> >, employee*)'

为什么会这样?

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

也许你已经这样做了,但是要确保,这应该放在定义你的类的标题中。

答案 1 :(得分:0)

我对此不太确定 但我认为这种情况正在发生,因为您创建了updateVector作为模板,但未指定类类型

我很确定它会是

updateVector <employee> (id, employees, new_employee);

对不起,如果我弄错了。