From d249cc2f9a9086e9aab8f62db34a7a653c213f97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnther=20Neuwirth?= Date: Fri, 29 May 2009 20:03:04 +0200 Subject: and again --- ue4/protokoll/protokoll.tex | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'ue4/protokoll/protokoll.tex') diff --git a/ue4/protokoll/protokoll.tex b/ue4/protokoll/protokoll.tex index 3c0eb9e..87a556a 100644 --- a/ue4/protokoll/protokoll.tex +++ b/ue4/protokoll/protokoll.tex @@ -40,17 +40,17 @@ Abbildung~\ref{fig:classdiagram1} zeigt das Klassendiagramm der Aufgabe. Wie gefordert, wurden die zwei zusätzliche Datentypen, \mbox{CDatSet} und \mbox{CDatN}, implementiert und der Programmcode generisch gestaltet. Dabei wurde \mbox{CDatSet} vom existierenden Typ \mbox{CDat} und boost::operators<\mbox{CDatSet}> mittels Mehrfachvererbung abgeleitet. -So war es möglich die Implemntierung, mittels Codewiederverwendung, auf das Überschreiben eines Kopierkonstruktors und des Operators \mbox{operator>>()} zu beschränken. +So war es möglich die Implementierung, mittels Codewiederverwendung, auf das Überschreiben eines Kopierkonstruktors und des Operators \mbox{operator>>()} zu beschränken. -Da der Typ \mbox{CDatN} Werte variabler Bitlänge representiert, war es notwendig diesen vollständig neu zu implementieren. Es wurde von boost::operators<\mbox{CDatN}> abgeleitet und dabei eine zusätzliche +Da der Typ \mbox{CDatN} Werte variabler Bitlänge repräsentiert, war es notwendig diesen vollständig neu zu implementieren. Es wurde von boost::operators<\mbox{CDatN}> abgeleitet und dabei eine zusätzliche Methode \mbox{align()} definiert, die sicherstellt, dass der transportierte Wert immer auf die geforderte Bitanzahl konvertiert wird. Weiters wurde ein Kopierkonstruktor definiert, der einen Integerwert und einen vorzeichenlosen Integerwert als Argument erwartet. Letzterer ist mit dem Defaultwert 31 deklariert und repräsentiert die Bitanzahl, auf die ersterer konvertiert wird. Damit ist es möglich alle vorhandenen Datentypen einheitlich zu verarbeiten. Der Defaultkonstruktor wurde wie gewünscht deaktiviert. Um nun die Wahl des Datentyps zu ermöglichen, wurde die Synopsis des Programms mit \mbox{``-f''} erweitert. -Der Parameter dieser Option muß \mbox{``s''} oder ein Wert zwischen ``2'' und ``32'' sein. -Im Hauptprogramm wird nun anhand dieses Parameters der zuständige Datentyp instanziert und die template Methode +Der Parameter dieser Option muss \mbox{``s''} oder ein Wert zwischen ``2'' und ``32'' sein. +Im Hauptprogramm wird nun anhand dieses Parameters der zuständige Datentyp instanziert und die Templatemethode \mbox{cpu\_run()} aufgerufen, welche die Initialisierung und Abarbeitung des Programms anstößt. Damit das Programm mit den verschiedenen Datentypen umgehen kann, wurden \mbox{CCPU}, \mbox{CMem}, \mbox{CProgram}, \mbox{CInstuction} und die abgeleiteten \mbox{Instructions} @@ -73,7 +73,7 @@ zu Templates umgewandelt, die als Typparameter den, im Hauptprogramm, instanzier Die Register von \mbox{CCPU} werden nun, anstatt in einem Array, in einem Vector verwaltet. Dieser wird mit der Anzahl der Register und dem, im Hauptprogramm, instanzierten Datentyp initialisiert. -Dadurch ist das Löschen der register im Destruktor nicht mehr notwendig. +Dadurch ist das Löschen der Register im Destruktor nicht mehr notwendig. Siehe auch Punkt~\ref{Probleme und Fallstricke}.\\ -- cgit v1.2.3