Lemme see if I got the code correctly.
The class baseobject is like a class for all the types of items that the player can carry in his/her inventory. virtual void Describe would have the description of the item. virtual bool isWeapon() determines if the item is a weapon and is false by default.
The class weapon is like a class for the weapon type of item. isWeapon() would be true because it is a weapon.
Parts I don't get :
What is shortDesc and longDesc supposed to mean?
useWeaponOn means equip or don't equip? or does it mean something else?
No idea whats a virtual data type yet =(