1.6. Extender Macros

A number of macros are provided to make subclassing easier for you. Each chapter lists the relevant macros and where they are defined. For example, SoNode( C++ | Java | .NET ) provides SO_NODE_INIT_CLASS() and SO_NODE_INIT_- ABSTRACT_CLASS() in the SoSubNode.h file. SoField( C++ | Java | .NET ) provides SO_SFIELD_INIT() and SO_MFIELD_INIT() in SoSubField.h. The chapter examples illustrate how to use the macros.

Most classes provide macros for use in header files, source files, and class initialization routines. Within these general categories, macros are provided for both abstract and nonabstract classes. The include file for the macros generally is the name of the base class, prefixed by Sub—for example, SoSubNode.h contains the macros for defining new node classes, and SoSubAction.h contains the macros for defining new action classes.