作为模板实参的指针向量

Vector of pointers as a template argument

本文关键字:指针 向量 实参      更新时间:2023-10-16

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

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*)'

为什么会发生这种情况?

谢谢你的帮助

也许你已经这样做了,但要确保,这应该放在你的类定义的头文件中

我不太确定但我认为这是因为你创建updateVector作为一个模板,你没有指定类类型

我很确定会是

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

对不起,如果我说错了