Я делаю текстовую приключенческую игру на C++. Это структура для объекта в этой игре (что-то пользователь может подобрать и положить в инвентарь)C++ struct с шаблоном в векторе
template <int N>
struct Object
{
static const int length = N;
string names[N];
string description;
};
Примеры объектов:
Object<2> flower = { {"flower", "the flower"}, "A strange looking flower"};
Object<3> book = { { "the book", "book", "recipe book" }, "The world's finest cocktail recipes now all in one easy to use companion." };
Множественные имена являются синонимами команды парсер , поэтому пользователь может ввести «взять книгу» или «забрать книгу рецептов», которая в обоих случаях поднимает объектную книгу.
Теперь я хотел бы создать векторный инвентарь для хранения всех элементов в инвентаре.
vector<Object> inventory;
Теперь, с курса, это дает мне ошибку компилятора, потому что он ожидает что-то вроде этого:
vector<Object<5>> inventory;
Однако, некоторые объекты имеют больше имен, чем другие, это что-то вроде этого возможно и если так как?
vector<Object<N>> inventory;
почему вы должны держать N в качестве шаблона? , если N отличается от другого, вы можете использовать 'std :: vector names' вместо' string names [N] ' –
Raxvan
Кажется, сегодня существует одержимость написанием ответов в комментариях! –