![](/img/trans.png)
[英]error: undefined reference to `cv::imread(std::string const&, int)'
[英]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文件中。 另外,我建議使用標准容器類,例如QVector
或std::vector
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.