SG_USER_DYNAMIC_DATA - is a basic structure for a user-defined data block. A data block of any size and content can be assigned to any object of the class inherited from sgCObject. The only thing you should realize is a memory release function - Finalize().
This function is called when deleting an object.
virtual void Finalize() =0;