Thanks for your help - I'll try making an XML file for the data. I've just started to look at reading from an XML document into C++ (I'm using Visual Studio), should I use a library of some kind (i.e. Xerces) or should I write a method myself?
I still think the data needs to be read into an individual item class - the actual "inventories" will be vector<item> - each item contains it's own attributes, and it's easy to remove or add a single item rather than having to remove the elements of several vectors. As there are already going to be several inventory systems (one for chests, one for rucksack, one for equipped items, one for bank etc) I want to avoid having a large number of vectors.
I have two ideas on how to use the XML file - either the program searches through the XML for a particular Id and then loads that item. Alternatively all items are sorted into a vector when the game first loads, the vector is then used whenever an inventory needs item data.
---
Unrelated question - when a chest is created/loaded, I want the ability to put a random number of items into the chest when it's created. Is the only way to do this overloading?
E.g.
Chest chest1 (1);
Chest chest2 (4, 6, 4, 27, 9, 10);
Chest chest3 (2, 3, 8, 7);
Each integer represents an item Id. I want the Chest constructor to take as many item Id's as needed, do I have to overload the constructor for every length the function can take?
I know my original question has been answered - but it seems a better idea to continue using the thread for questions/ideas than not.