用VC6.0的朋友近来下
帮我在你们的机器上运行下这个程序。。我在我的机器上运行了就会出错。。。调试的时候又没报错。。警告也没。。不知道怎么回事。。有可能的话帮我解决下谢谢了。。
#include <iostream>
using namespace std;
template <class A>
class list{
private:
A *p;
A size;
A _number;
//定义数据
public:
list(A size=20,A _number=10){
A *p=new A[size];
for(int a=0;a<10;a++)
{
p[a]=a+1;
}
}
~list(){
delete [] p;
for(int a=0;a<10;a++)
{
p[a]=NULL;
}
}
bool insert(int i,int x);
bool shanchu1(int i);
bool find(int i);
//对其私有成员操作的函数接口
};
template <class A>
bool list<A>::insert(int i,int x)
{
if(i<0||i>size||i==0)
{
return false;
}
else if(_number>size)
{
return false;
}
else if(i>0||i<=_number)
{
int b=0;
i=b;
_number++;
for(int c=1;c<=_number-i;c++)
{
p[b]=p[b+c];
}
return true;
}
else if(i>0||i<=size||i>_number)
{
x=p[i];
_number++;
return true;
}
return false;
}
template <class A>
bool list<A>::shanchu1(int i)
{
if(i<0||i>size)
{
return false;
}
else if(_number=0)
{
return false;
}
else if(i>0||i>_number||i<=size)
{
cout<<"点不存在"<<endl;
return false;
}
else if(i>0||i<=_number)
{
p[i]=0;
_number--;
return true;
}
return false;
}
template <class A>
bool list<A>::find(int i)
{
if(i<0||i>_number||_number==0)
{
return false;
}
else if(i>0||i<=_number)
{
cout<<"*p[i]="<<p[i]<<endl;
return true;
}
return false;
}
int main()
{
int i=11;
int x=30;
bool cao;
bool ri;
bool nima;
list<int> duixiang;
cao=duixiang.insert(i,x);
if(cao==true)
{
cout<<"tre"<<endl;
}
ri=duixiang.shanchu1(i);
if(ri==true)
{
cout<<"tue"<<endl;
}
nima=duixiang.find(i);
if(nima==true)
{
cout<<"tre"<<endl;
}
return 0;
}