diff --git a/verfahren.pdf b/verfahren.pdf index 0f9f924..44f5af5 100644 Binary files a/verfahren.pdf and b/verfahren.pdf differ diff --git a/verfahren.tex b/verfahren.tex index 08b5eb1..64fb5c2 100644 --- a/verfahren.tex +++ b/verfahren.tex @@ -210,10 +210,16 @@ \end{itemize} \subsection{Mehrfachvererbung} - -\subsubsection{Dynamischer Methodenaufruf} - -\subsubsection{Casts/Typprüfung zur Laufzeit} +\begin{itemize} + \item Objekt enthält V-Table pro Elternklasse und eine V-Table für eigene Methoden:\begin{itemize} + \item Wenn Elternmethoden nicht überschrieben werden, Verhalten wie bei Interfaces mit Standardimplementierung + \item Sonst Hilfsmethoden in V-Tables für Anteil der jeweiligen Elternklasse eintragen + \end{itemize} + \item Diamantenproblem: Mehrere Elternklassen erben von selber Klasse \texttt{A} $\rightarrow$ Attribute von \texttt{A} mehrfach vorhanden + \item Virtual Inheritance als Lösung für Diamentenproblem (nur ein Feld für doppeltes Attribut \texttt{a}):\begin{itemize} + \item \texttt{A}-Anteil des Objekts nicht mehr an festem Offset, sondern zusätzliches Offset-Feld in jedem \enquote{Anteil} des Objekts + \end{itemize} +\end{itemize} \section{Code-Selektion}