Вы присваиваете значение _stocks [0], но сначала вы не определяете размер вектора, чтобы он содержал хотя бы один элемент. Либо используйте push_back , либо используйте список инициализации, чтобы инициализировать ваш вектор при построении.
Чтобы назначить что-то для t_stock, вы можете использовать
t_stock dummy = { plazza::Doe /* first argument in struct is the ingredient */, 1 /*second argument in the struct is the quantity */ }
Комбинированный, чтобы правильно назначить все в конструкторе вашей кухни, вы можете использовать:
Kitchen::Kitchen(int multiplier, int numCooks, int cookingTime)
: _multiplier(multiplier),
_numCooks(numCooks),
_cookingTime(cookingTime),
_stock({ {plazza::Doe, 1} }) // Initialize vector with one element
{
}
Чтобы добавить При создании нескольких элементов вы можете сделать:
Kitchen::Kitchen(int multiplier, int numCooks, int cookingTime)
: _multiplier(multiplier),
_numCooks(numCooks),
_cookingTime(cookingTime),
_stock({ {plazza::Doe, 1}, {plazza::Tomato, 4} }) // Initialize vector with two elements
{
}
Чтобы добавить новые элементы запаса после создания, всегда используйте push_back
_stock.push_back({plazzo::Gruyere, 16}); // Add lots of 'em