Simon Bruder
db4d489ae8
size_t should only be used for indexing. For all other purposes, unsigned int should be used. |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
main.cpp | ||
node.cpp | ||
node.h | ||
readme.txt | ||
tests.cpp |
<!-- vim: set ft=markdown: --> <!-- LTeX: language=de-DE --> <!-- SPDX-License-Identifier: GPL-3.0-or-later --> # Praxisaufgabe 1 Einführung in die Computergrafik ## Team * Simon Bruder, Matrikelnummer: 5075324 ## Bearbeitete Zusatzaufgaben * Rekursive Traversierung: `node::print_recursive()` * Iterative Traversierung: `node::print_iterative()` * Bauen einer dynamischen Bibliothek `libtree.so` (siehe unten für Hinweise) * Bauen einer statischen Bibliothek `libtree.a` ## Hinweise ### Signatur der Traversierungsmethoden Die rekursive und iterative Traversierung sollen laut Aufgabenstellung „ähnlich zum `<<`-Operator“ implementiert werden. Da es aber pro Klasse nur eine Implementation des `<<`-Operators geben kann, habe ich die Funktionen so implementiert, dass sie `std::string` zurückgeben und damit die Anwendung ähnlich ist wie bei Verwendung von `print` (aus 1.2.3): ```cpp // statt std::cout << n; // ist es für die anderen Traversierungsmethoden std::cout << n.print_recursive(); // bzw. std::cout << n.print_iterative(); ``` ### Statische und dynamische Bibliothek Im Normalfall baut das CMake-Projekt eine statische Bibliothek und linkt `main` dagegen. Damit ist Zusatzaufgabe 3 erfüllt. Um eine dynamische Bibliothek zu bauen und `main` dagegen zu linken, kann CMake mit `-DBUILD_SHARED_LIBS=ON` aufgerufen werden. Da unter GNU keine spezifischen Annotationen dafür nötig sind, ist Zusatzaufgabe 4 erfüllt.