首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2013-11-09 
关于指针的一个问题,为什么不能用数组指针?int main(){beasts * p[4]beasts是基类beasts * p1int iint

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

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个

热点排行