使 boost::p tr_vector 容器类push_back函数

making boost::ptr_vector container class push_back function

本文关键字:push back 函数 容器类 vector tr boost      更新时间:2023-10-16

>我只是了解容器类和模板,并且在研究如何正确实现它们时遇到了麻烦......我所有的问题都非常相似,所以一旦我解决了这个问题,我想我应该没事了。

这是我尝试实现的 push_back 成员函数的代码:

//data is of type boost::ptr_vector<T>
template <class T>
void P_VContainer<T>::push_back(T* item)
{
    data.push_back(item);
}

这是p_vcontainer.h中定义的:

void push_back(T* item);

这是 im 从编译器获得的错误:

main.cpp:(.text+0x89f): undefined reference to `P_VContainer<Customer>::push_back(Customer*)'

这就是我在 Main 中实现它的方式:

P_VContainer<Customer> myvector;
Customer *a = new Customer("C004", "Testy McTestington");
myvector.push_back(a);

关于我做错了什么的任何想法?

不要将模板划分为声明和实现。直接在头文件中实现它们。