Each VHDL type is mapped to a separate C++ type class which stores the actual data value of a corresponding object. Further, it includes methods which implements the predefined VHDL operators.
Each type class is derived from a base class. While the base class includes the variables to store the actual value, the base class adds some operators and type checking mechanisms.
Note, to save memory type classes do not include any pointers to the corresponding type info instances. This is not necessary because the VHDL compiler ``knows'' the type info instance for each VHDL object.