Figure 5 shows an example of a C++ model and Figure 6 shows the equivalent Objective-C object template. Since Objective-C and C++ programs are both run in the same memory space, only one copy of the object is created and shared between both environments.
In our implementation, shared Objective-C/C++ objects are instantiated in the Objective-C environment (since all the objects in Objective-C environment must be inherited from the Objective-C base class for them to behave as Objective-C objects) and are accessed in the C++ environment using the objects' C++ class templates (the Objective-C objects' pointers are passed to the C++ environment for typecasting).