-1

我创建了一个向量类,并在 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> & );
    };

我该怎么办谢谢你的帮助

4

1 回答 1

2

在编写模板时,您应该使用声明来定义方法,即在头文件中,而不是在 cpp 文件中。另外,我建议使用标准容器类,例如QVectoror std::vector

于 2013-05-18T12:42:51.200 回答