【发布时间】:2016-10-23 21:31:34
【问题描述】:
我是 C++ 的新手,我遇到了将结构存储在数组中的问题。我已经搜索了有关此问题的板,但似乎没有人遇到我的具体问题。
我正在创建一个基于文本的 RPG 游戏,它需要一个动态的法术数组。咒语是结构体,定义如下:-
struct spell
{
std::string mSpellName;
int mRequiredMagicPoints;
};
然后我创建并初始化结构的两个实例:-
spell fireBall {"Fire Ball", 10};
spell magicMissile {"Magic Missile", 5};
然后,在 main() 中,我尝试将这两个实例存储在一个向量数组中:-
int main()
{
std::vector<spell> mSpells[2];
mSpells[0] = fireBall;
mSpells[1] = magicMissile;
}
但是,Xcode 冲我大喊“没有可行的重载 '='”
我也尝试将这些结构存储在传统的动态数组中,但仍然无法编译。我做错了什么?
提前致谢!
【问题讨论】:
-
C is not C++ is not C. 不要使用错误的标签。
-
也许你的意思是
std::vector<spell> mSpells(2);,一个包含 2 个元素的向量。你实际写的是一个由 2 个空向量组成的数组