微电影拍摄目的和意义:程序为何会出现"段异常"的错主误

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 16:09:25
我是新手,刚学C++,有一个小程序,编译没有什么问题,可就是不能执行,急死我啦.程序如下:
#include<iostream>

class Cat
{

public:

Cat(int age=1):itsAge(age){HowManyCats++;};
virtual ~Cat(){HowManyCats--;};
virtual int getAge(){return itsAge;};
virtual void setAge(int age){itsAge=age;};
static int HowManyCats;
private:
int itsAge;
};

int Cat::HowManyCats=0;

int main()
{
const int MaxCats=5;
Cat *CatHose[MaxCats];
int i;
for(i=0;i<MaxCats;i++)
CatHose[i]=new Cat[i];
for(i=0;i<MaxCats;i++)
{
std::cout<<"There are "<<Cat::HowManyCats<<" cats lift!\n";
std::cout<<"Deleting the one which is ";
std::cout<<CatHose[i]->getAge();
std::cout<<" years old\n";
delete CatHose[i];
CatHose[i]=0;
}
return 0;
}

运行时总是说:程序产生了一个违例(段异常).
不知是什么原因,如何解决.哪位大侠帮帮我呢,先行谢过啦.

CatHose[i]=new Cat[i]; //感觉你这里不应该是一个数组吧?
原题是不是
CatHose[i]=new Cat(i);
??
根据这段程序的意思好像是这样。