好吧,在我的ArcherArmor.cpp中,我试图弄清楚为什么映射初始化列表不起作用,但出于某种原因,我总是收到“Error C2593:'operator ='不明确”。这里是我的代码:初始化映射时出错
我也有一个ArcherArmor派生自的类,它有一个名为Armor
的结构,为简单起见我省略了这个结构。主要的问题是错误!我能想到的唯一的事情是即时映射初始化错误。
//ArcherArmor.h
#include <string>
#include <map>
class ArcherArmor
{
private:
map <int, Armor> soldier_armor;
public:
void ArcherArmor_shop();
};
//ArcherArmor.cpp
#include "ArcherArmor.h"
void ArcherArmor::ArcherArmor_shop(){
soldier_armor = {//name, damage, price
{1, Armor("Meito Ichimonji", 4, 150, 1)},
{2, Armor("Shusui", 10, 230, 2)},
{3, Armor("Apocalypse", 16, 300, 3)},
{4, Armor("Blade of Scars", 24, 550, 4)},
{5, Armor("Ragnarok", 32, 610, 5)},
{6, Armor("Eternal Darkness", 40, 690, 6)},
{7, Armor("Masamune", 52, 750, 7)},
{8, Armor("Soul Calibur", 60, 900, 8)}
};
}
//Main.cpp
/*code left our for simplicity*/
这是分配,而不是初始化。此外,如果你的密钥是顺序整数,也可以使用'vector'。 – user3286380
哦,谢谢你的澄清和地图更合适,因为我可能最终会改变钥匙和东西。这只是让我能够工作,然后我会从那里工作。 – Damian