一道C++的题目,学过C++的大虾们进来看看

来源:百度知道 编辑:UC知道 时间:2024/05/04 02:18:06
1 定义一个游戏刀类物品Knife , 该类型只有一种属性攻击力(attack)。在main函数里通过对象数组的方式创建10把刀,然后用一个for语句为每把刀的攻击力赋值。刀的攻击力从1到10,随着刀在数组中的排序加大(如排0号的刀攻击为1,排9号的刀为10)。再用另一个for语句把每把刀的攻击力输出到屏幕上。

2、 修改上题,让数组中的10把刀变为指针并在堆里通过new操作符动态创建它们的对象。要求用户按键盘0-9时能相应地删除数组里的这把刀,并在屏幕输出相应删除操作信息。如果已经删除了的,请输出相应信息提醒用户这把刀已被删除。
只求第二题~~的解答,答出来的话我还会加分的!

#include <iostream>
using namespace std;
struct Knife
{
};
int main()
{
Knife* knifes[10];
for(int i = 0 ; i < 10 ; i++)
{
knifes[i] = new Knife;
}

int nIndex;
while(cin>>nIndex)
{
if(nIndex >= 0 && nIndex < 10)
{
if(knifes[nIndex] == NULL)
{
cout<<"This knife has been deleted!"<<endl;
}
else
{
delete knifes[nIndex];
knifes[nIndex] = NULL;
}
}
}

for(int i = 0 ; i < 10 ; i++)
{
if(knifes[i] != NULL)
{
delete knifes[i];
}
}

return 0;
}