Итак, внутри моего ArcherArmor.cpp, я пытаюсь понять, почему список инициализаторов карты не работает, но по какой-то причине я продолжаю получать «Ошибка C2593:« operator = »неоднозначна». Вот мой код:Ошибка инициализации карты
У меня также есть класс, из которого вызывается ArcherArmor, у которого есть структура, называемая Armor
, которую я забыл для простоты. Основная проблема заключается в том, что ошибка! Единственное, о чем я могу думать, это то, что im инициализирует карту неправильно.
//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*/
Это назначение, а не инициализация. Кроме того, если ваши ключи являются последовательными целыми числами, также можно использовать «вектор». – user3286380
О, спасибо за разъяснение, и карта более подходит, потому что я могу в конечном итоге изменить ключи и прочее. Это только потому, что я могу заставить его работать, тогда я буду работать оттуда. – Damian