struct ItemType { int id; char name[64]; char description[256]; // [other descriptive properties shared by // all instances of this item] // D3Dsomething model; // D3Dimage invPic; // inventory picture }; class Item { public: Item(ItemType type) { this->type = type; } ~Item() {}; private: ItemType type; // or should I use a pointer? // [properties that differ between instances // of the item] };