VOOPS transforms template header files *_h.tpl into C header files *.h, and template source files *_c.tpl into C source files *.c. Additionally, the definition of a master template header and source file is necessary, where the class table declarations and definitions go into, which are explained in detail below. The relation of the various template header and source files is shown in Fig. C.1.
Figure C.1: Relation of VOOPS' template header and
source files
Class definitions are made in template header files, and method definitions go into template source files. The master header file additionally holds the C type declaration of the generated class table after running VOOPS, and the actual definition of this class table is written into the master source file. At the end of the master header file, the C union of all classes currently known to VOOPS is defined, which is the genuine object for a particular module. A pointer to this union is the universal object pointer to objects of the current module and is available in VOOPS statements through the SELF data type.