我在qt中创建了一个矢量类 我写了这段代码
这是一个点击操作,我试图通过点击操作在向量中添加新值
void MainWindow::manuelclick()
{
int b=0;
vector<int> a;
a.pushBack(10);
for(int i=0;i<a.size();i++)
{
b=a.getarray(i);
QString str=QString::number(b);
ui->mbox->setText(str);
}
这些是我得到的错误
undefined referance to vector<int>::pushBack(int const&)
undefined referance to vector<int>::size()
undefined referance to vector<int>::vector()
undefined referance to vector<int>::getarray(int)
undefined referance to vector<int>::~vector()
undefined referance to vector<int>::~vector()
collect2: error: ld returned 1 exit status
当我删除此代码时没有错误
这里也是我的“vector.h”
#include<iostream>
template <class T>
class vector
{
int vsize,maxsize;
T* array;
void alloc_new();
public:
vector();
vector(int);
~vector();
void pushBack(const T&);
void show();
int size();
T operator[](int);
T getarray(int);
vector<T>& operator +=(const vector <T>&);
template<class TE>
friend std::ostream& operator<<(std::ostream&,const vector<TE> &);
template<class TE>
friend std::istream& operator>>(std::istream&,vector<TE> & );
};
我应该怎么做
谢谢你的帮助
答案 0 :(得分:2)
编写模板时,应该使用声明定义方法,即在头文件中,而不是cpp文件。另外,我建议使用标准容器类,例如QVector
或std::vector
。