Compared with pure C ++, C ++/CLI supports the creation of hosted reference objects. Hosted objects are allocated and managed by virtual machines. programmers can no longer worry about memory leakage. In fact, to put it bluntly, it is equivalent to creating a memory pool by yourself, and the virtual machine actually does the same.
In CLI, all classes are derived from objects, including values such as int. What is the internal structure of the Object? By studying the vm code, we can see that the structure is as follows:
You can save a handle to a hosted Object as a pointer to the Object, which contains a MethodTable pointer. This MethodTable stores type information and some functions, this is like a virtual function pointer. Many operations are completed through this pointer, such as Allocate (), such as Box (), UnBox (), and so on. What follows MethodTable is real data.
This MethodTable is a core class in the vm. It can perform many operations.