Mehrfachvererbung
This commit is contained in:
parent
b23c701932
commit
1051d60244
BIN
verfahren.pdf
BIN
verfahren.pdf
Binary file not shown.
@ -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}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user