.cpp
```c++
#include "Hero.h"
#include <string.h>
#include <iostream>
using namespace std;
bool PickGoods(Hero& hero, Goods goods)
{
//判断背包是否已满
if (hero.MyBag.Size <Num)
{
//把物品添加到数组末尾
//拷贝拾取物品的属性 memcpy
//memcpy(&hero.MyBag.MyGoods[hero.MyBag.Size], &goods, sizeof(Goods));
hero.MyBag.MyGoods[hero.MyBag.Size].Id = goods.Id;
hero.MyBag.MyGoods[hero.MyBag.Size].AddNum = goods.AddNum;
strcpy_s(hero.MyBag.MyGoods[hero.MyBag.Size].Name, goods.Name);
++hero.MyBag.Size;
return true;
}
return false;
}
//打开背包
void OpenBag(const Hero& hero)
{
cout << "编号\t物品名称\t属性值\n";
//遍历背包中所有物品:并显示其属性
for (int i = 0; i < hero.MyBag.Size; i++)
{
cout << i + 1 << "\t" << hero.MyBag.MyGoods[i].Name << "\t\t" << hero.MyBag.MyGoods[i].AddNum << endl;
}
}
void UseGoods(Hero& hero, int Index)
{
//数组是否越界
if (Index >= 0 && Index < hero.MyBag.Size)
{
//增加玩家对应的属性值
if (1 == hero.MyBag.MyGoods[Index].Id)
{
hero.Hp += hero.MyBag.MyGoods[Index].AddNum;
}
//使用的物品的后面所有物品前移一位
for (int i = Index + 1; i < hero.MyBag.Size; i++)
{
hero.MyBag.MyGoods[i - 1].Id = hero.MyBag.MyGoods[i].Id;
hero.MyBag.MyGoods[i - 1].AddNum = hero.MyBag.MyGoods[i].AddNum;
strcpy_s(hero.MyBag.MyGoods[i - 1].Name, hero.MyBag.MyGoods[i].Name);
}
--hero.MyBag.Size;//物品数量-1
}
}
```