>>Take a look at the example in my other message in this thread, I think I got something.
>
>Yes, I think you may be correct that an object really is just a block of pointers, not a contiguous memory thingie. That makes a whole lot of sense, when you think about it, because then it can just point back to the class definition for default values, and just change the pointer when it needs to be a unique value. There internally is probably some sort of flag on each property to indicate default vs unique to this object. Then again, that may never be necessary as it could all be handled at instanciation of the objects. Who really cares what the pointer is pointing to, default values or my own?
I'd rather agree with others in this thread that there's also a flag somewhere, probably in value structure or somewhere, telling its overridden status - if it didn't have one, it'd be much more of a hassle to track the PemStatus(), and that's about the only function which cares :). Also, the ResetToDefault method probably clears or sets this flag. Without the flag, it would probably have to take care of where's the pointer pointing to, which would cost some performance.