Accessing a C++ Object in C Code: Support for Virtual Base Classes

C code should not access objects that have a virtual base class. The reason is that a virtual base is usually represented in the form of a pointer to a shared instance of the virtual subobject. The position of this pointer among user-defined data members is implementation-dependent. Furthermore, the pointer holds a transient value, which can change from one execution of the program to another. Therefore, accessing an object with a virtual base from C code is highly dangerous and should be avoided.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin


Recent Articles: