关于指针的一个问题,为什么不能用数组指针?
int main()
{
beasts * p[4]; beasts是基类
beasts * p1;
int i;
int check;
for (i=0; i<5;i++)
{
cout<<"(0)鸟类(1)爬行类(2)跳跃类(3)速度型"; //这些都是子类
cin>>check;
switch(check)
{
case 0:p1=new birds;
break;
case 1:p1=new Reptiles;
break;
case 2:p1=new jumping;
break;
case 3:p1=new speedtype;
break;
default:p1=new beasts;
}
p[i]=p1;
p[i]->special();
delete p[i];
}
return 0;
}
我的问题是。 case 3:p1=new speedtype;如果换成 case 3:p[i]=new speedtype;
将会出错,为什么??同样是指针,而且p1和p[]都是基类的。??
[解决办法]
beasts * p[4]; //4个
for (i=0; i<5;i++) //5个
//越界了?
[解决办法]
beasts * p[4]; 下标只有0-3,但你的i是0-4
[解决办法]
没有错啊,我在自己编译器上面编译了,没错啊
你报了什么错
[解决办法]
越界了
beasts * p[4]; //4个
for (i=0; i<5;i++) //5个