X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/665a0455e68358f981e1485ed04cd22d31dcf4f1..984c3fc3a94a81c2e6752031ed6a8b9a6c948658:/doc/concepts.tex diff --git a/doc/concepts.tex b/doc/concepts.tex index f332be1..c938c47 100644 --- a/doc/concepts.tex +++ b/doc/concepts.tex @@ -110,6 +110,7 @@ appropriate C declarations, tables, and functions. An object cannot (usually) change its direct class, and the direct class of an object is not affected by, for example, the static type of a pointer to it. + \subsection{Superclasses and inheritance} \label{sec:concepts.classes.inherit} @@ -232,6 +233,7 @@ Classes have a number of other attributes: then all the superclasses of $C$ must have distinct nicknames. \end{itemize} + \subsection{Slots} \label{sec:concepts.classes.slots} Each class defines a number of \emph{slots}. Much like a structure member, a @@ -257,6 +259,7 @@ expressions if the generated code is expected to be processed by a implementation of C89. Initializers will be evaluated once each time an instance is initialized. + \subsection{C language integration} \label{sec:concepts.classes.c} For each class~$C$, the Sod translator defines a C type, the \emph{class @@ -473,6 +476,7 @@ contains a copy of the direct method body. Within the body of a direct method defined for a class $C$, the variable @|me|, of type pointer to class type of $C$, refers to the receiving object. + \subsection{Effective methods and method combinations} \label{sec:concepts.methods.combination}