0
我們正在嘗試編寫一個非常簡單的類,以複數jsut爲例,並且我們沒有得到太多...帶模板的簡單類
以下是我們的3個文件。
complex2.h
#include<iostream>
#include<new>
template<class T>
class complex2
{
private:
T re, im; // real and imaginary part
public:
complex2();
complex2(T re_a =0.0, T im_a =0.0); //= 0.0 = 0.0
~complex2() {}
T Re() const;
T Im() const;
};
#endif // COMPLEX2_H
complex2.cpp
#include "complex2.h"
template<class T>
complex2<T>:: complex2() {re = im = 0.0; }
template<class T>
complex2<T>:: complex2(T re_a, T im_a){re = re_a; im = im_a;}
template<class T> T complex2<T>:: Re() const { return re;}
template<class T> T complex2<T>:: Im() const {return im;}
的main.cpp
#include <iostream>
#include<cmath>
#include"complex2.h"
using namespace std;
int main()
{
complex2<int> b(1, 2);//
cout << "Re b: "<< b.Re() << "Im b: "<< b.Im() << endl;
return 0;
}
運行以上來自Qt,給出了錯誤信息
/home...main.cpp:10: error: undefined reference to `complex2<int>::complex2(int, int)'
/home/.../main.cpp:11: error: undefined reference to `complex2<int>::Im() const'
/home/...main.cpp:11: error: undefined reference to `complex2<int>::Re() const'
:-1: error: collect2: error: ld returned 1 exit status
有沒有人看到我們如何做到這一點?
謝謝!這使我們朝着正確的方向發展! – KJA