C++問題
頭檔案定義類:
#include<iostream>
using namespace std;
const int MaxSize=100;
template<class T>
class SeqList
{
public:
SeqList(){length=0;}
SeqList(T a[],int n);
~SeqList(){}
int length(){return length;}
T Get(int i); //按位查找
int Locate(T x); //按值查找
void Insert(int i,T x);
T Delete(int i);
void PrintList();
private:
T data[MaxSize];
};
template<class T>
SeqList <T>::SeqList(int n)
{
int i;
if(n>MaxSize)
cout<<"引數非法";
for(i=0;i<n;i++)
cin>>data[i];
length=n;
}
template<class T>
void SeqList<T>::Insert(int i,T x)
{
int j;
if(length>=MaxSize)
cout<<"上溢";
if(i<1||i>length+1)
cout<<"位置例外";
for(j=length;j>=i;j--)
data[j]=data[j-1];
data[i-1]=x;
length++;
}
template<class T>
T SeqList<T>::Delete(int i)
{
int j,x;
if(length==0)
cout<<"下溢";
if(i<1||i>length)
cout<<"位置例外";
x=data[i-1];
for(j=i;j<length;j++)
data[j-1]=data[j];
length--;
return x;
}
template<class T>
T SeqList<T>::Get(int i)
{
if(i<1||i>length)
cout<<"查找位置非法";
else return data[i-1];
}
template<class T>
int SeqList<T>::Locate(T x)
{
int i;
for(i=0;i<length;i++)
if(data[i]==x)return i+1;
return 0;
}
template<class T>
void SeqList<T>::PrintList()
{
if(i==0)
cout<<"下溢";
for(i=0;i<length;i++)
cout<<data[i]
}
然后主函式:
#include<iostream>
using namespace std;
int main()
{
SeqList<int> s(0);
s.PrintList();
s.Insert(3,8);
cout<<endl;
s.PrintList();
s.Delete(5);
cout<<endl;
s.PrintList();
return 0;
}
然后錯誤顯示:
--------------------Configuration: exe - Win32 Debug--------------------
Compiling...
cc.cpp
d:\microsoft visual studio\myprojects\exe\seqlist.h(32) : error C2244: 'SeqList<T>::SeqList<T>::SeqList<T>' : unable to resolve function overload
d:\microsoft visual studio\myprojects\exe\seqlist.h(33) : error C2954: template definitions cannot nest
d:\microsoft visual studio\myprojects\exe\cc.cpp(6) : error C2664: '__thiscall SeqList<int>::SeqList<int>(const class SeqList<int> &)' : cannot convert parameter 1 from 'const int' to 'const class SeqList<int> &'
Reason: cannot convert from 'const int' to 'const class SeqList<int>'
No constructor could take the source type, or constructor overload resolution was ambiguous
執行 cl.exe 時出錯.
exe.exe - 1 error(s), 0 warning(s)
uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/132776.html
標籤:基礎類
