类模板的使用问题(简单)
头文件内容:
#include<iostream>
const int defaultSize=100;
template<class T>
class SeqList
{
protected:
T *data;
int maxSize;
int last;
void reSize(int newSize);
public:
SeqList(int sz=defaultSize);
SeqList(SeqList<T>&L);
~SeqList(){delete[]data;}
int Size()const{return maxSize;}
int Length()const{return last+1;}
int Search(T& x)const;
int Locate(int i)const;
T* getData(int i)const
{return (i>0&&i<=last+1)?&data[i-1]:NULL;}
void setData(int i,T& x)
{if(i>0&&i<=last+1)data[i-1]=x;}
bool Insert(int i,T&x);
bool Remove(int i,T&x);
bool IsEmpty(){return(last==-1);}
bool IsFull(){return(last==maxSize-1);}
void input();
void output();
SeqList<T>operator=(SeqList<T>&L);
}
源文件内容:
#include"seqList.h"
using namespace std;
template<class T>
SeqList<T>::SeqList(int sz)
{
if(sz>0)
{
maxSize=sz;
last=-1;
data=new T[maxSize];
if(data==NULL)
{
cerr<<"存储分配错误."<<endl;
exit(1);
}
}
}
编译器报错:
1>c:\users\lipengcheng\documents\visual studio 2008\projects\数据结构\数据结构\seqlist.cpp(2) : error C2143: 语法错误 : 缺少“;”(在“using”的前面)
怎么回事啊?我的书上没给完全代码,我自己写不出来完整的了!
[解决办法]
//头文件内容: #include <iostream> const int defaultSize=100; template <class T> class SeqList { protected: T *data; int maxSize; int last; void reSize(int newSize); public: SeqList(int sz=defaultSize); SeqList(SeqList <T>&L); ~SeqList(){delete[]data;} int Size()const{return maxSize;} int Length()const{return last+1;} int Search(T& x)const; int Locate(int i)const; T* getData(int i)const {return (i>0&&i <=last+1)?&data[i-1]:NULL;} void setData(int i,T& x) {if(i>0&&i <=last+1)data[i-1]=x;} bool Insert(int i,T&x); bool Remove(int i,T&x); bool IsEmpty(){return(last==-1);} bool IsFull(){return(last==maxSize-1);} void input(); void output(); SeqList <T>operator=(SeqList <T>&L); }; // 这里少个分号