簡體   English   中英

錯誤:未定義對`vector的引用 <int> :: pushBack(int const&)&#39;

[英]error: undefined reference to `vector<int>::pushBack(int const&)'

我創建了一個矢量類,並在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> & );
    };

我該怎么辦感謝您的幫助

編寫模板時,應在聲明時正確定義方法,即在標頭中,而不在cpp文件中。 另外,我建議使用標准容器類,例如QVectorstd::vector

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM