C++primer的一个问题,,求教。。。。 (
C++primer第2章2。5泛型设计的例子,不知道怎么了,调试报出
1.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall
Array<char>::Array<char>(int)" (??0?$Array@D@@QAE@H@Z),该符号在函数 _wmain
中被引用
1.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall
Array<double>::Array<double>(int)" (??0?$Array@N@@QAE@H@Z),该符号在函数
_wmain 中被引用
1.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall
Array<int>::Array<int>(int)" (??0?$Array@H@@QAE@H@Z),该符号在函数 _wmain 中
被引用
的错误。。请问是怎么回事。。。谢谢。。。。
template <class elemType>
class Array{
public:
explicit Array(int size=DefaultArraySize);
Array(elemType *Array,int Array_size);
Array(const Array &rhs);
~Array() {delete []ia;}
bool operator==(const Array&) const;
bool operator!=(const Array&)const;
Array& operator=(const Array&);
int size() const{return _size;}
elemType &operator[](int index){return ia[index];}
void sort();
elemType min() const;
elemType max() const;
int find(const elemType &value) const;
protected:
static const int DefaultArraySize=12;
int _size;
elemType *ia;
};
下面是cpp文件:
#include "stdafx.h"
#include <iostream>
#include "Array.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
const int array_size=4;
Array<int> ia(array_size);
Array<double> da(array_size);
Array<char> ca(array_size);
int ix;
for(ix=0;ix<array_size;++ix){
ia[ix]=ix;
da[ix]=ix*1.75;
ca[ix]=ix+'a';
}
for(ix=0;ix<array_size;++ix)
cout<<"["<<ix<<"]ia:"<<ia[ix]<<"\tca:"<<ca[ix]<<"\tda:"<<da
[ix]<<endl;
return 0;
}