A language translator is provided which determines memory structure at
compile time for a plurality of object classes including at least one
virtual base class and at least one class derived therefrom. At compile
time, space for pointers (b-pointers) is set aside in each class object
that will have a base table (b-table) associated therewith. The b-pointers
point, at run time, to an associated b-table containing memory offsets
between the base classes of the derived class. At run time, constructors
construct the class objects, starting from the most derived class object
and proceeding through to the base class object. However, instead of
generating the virtual tables and associated pointers, as well as the
adjusting functions, at compile time, the language translator generates
the code for these operation to be executed at run time. Then at run time,
a virtual function table is generated for the base class. Since the
necessary offsets are known at run time, all of the adjusting functions,
the virtual function tables, and the virtual pointers may be generated.
Thus, the system completes the construction of an object.
On fournit un traducteur de langue au lequel détermine la structure de mémoire compilent l'heure pour une pluralité de classes d'objet comprenant au moins une classe basse virtuelle et au moins une classe est dérivé de là. À compilez le temps, l'espace pour des indicateurs (b-indicateurs) est mis de côté dans chaque objet de classe qui aura une table basse (b-table) associée en conséquence. Les b-indicateurs se dirigent, au temps d'exécution, à une b-table associée contenant des excentrages de mémoire entre les classes basses de la classe dérivée. Au temps d'exécution, les constructeurs construisent les objets de classe, à partir de l'objet de classe le plus dérivé et de la marche à suivre à travers à l'objet bas de classe. Cependant, au lieu de produire des tables virtuelles et des indicateurs associés, aussi bien que l'ajustement fonctionne, à compilent le temps, le traducteur de langue produit du code pour des ces opération à exécuter au temps d'exécution. Alors au temps d'exécution, une table virtuelle de fonction est produite pour la classe basse. Puisque les excentrages nécessaires sont connus au temps d'exécution, tous les fonctions d'ajustement, tables virtuelles de fonction, et indicateurs virtuels peut être produit. Ainsi, le système accomplit la construction d'un objet.