读书人

关于指针的一个有关问题,为什么不能用

发布时间: 2013-11-09 17:06:34 作者: rapoo

关于指针的一个问题,为什么不能用数组指针?

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个

读书人网 >C++

热点推荐