Praktikumsanleitung
Praktikum 4
Die letzte Vorlesung handelte von Projektstrukturierung.
Daher arbeiten wir heute nur mit einer großen Anwendung, die aus mehreren cpp- und h-Dateien besteht.
Das Grundgerüst finden Sie wie immer im “Quellcode” Archiv.
- Verzichten Sie auf
using namespace std;
- Vergessen Sie nicht die Include-Guards
- Für eigene Dateien verwendet man beim Include übrigens
""
, also z.B.#include "minmax.h"
. Die spitzen Klammern<>
sind den Systemheadern vorbehalten. - Dokumentationskommentare wären auch nicht schlecht
Projektstruktur am Ende:
- CMakeLists.txt
- main.cpp: Enthält
main()
- minmax.h/.cpp: Enthält
min
,max
undclamp
- calc.h/.cpp: Enthält
sum
undabs_sum
- euklid.h/.cpp: Enthält
euklid
Testen mit assert
Zum testen des Programms sind asserts sehr praktisch. Schreiben Sie diese einfach in Ihre main()
-Funktion. Der Fachbegriff dafür ist Unit Test. In der Praxis verwendet man professionellere Lösungen als assert, z.B. Google Test oder doctest, aber für unsere Zwecke ist es vollkommen ausreichend.
assert
befindet sich im Header cassert
(#include <cassert>
) und lässt das Programm abstürzen, wenn die Bedingung im assert falsch ist.
Beispiel:
// Wert speichern, dann prüfen
int m = min(3, 4);
assert(m == 3); // OK
// Direkt aufrufen und prüfen
assert(min(3, 4) == 3) // OK
assert(min(4, 3) == 4) // FEHLER
Gehen Sie Schritt für Schritt vor. Schreiben Sie z.B. erst min
, dann einen Testaufruf in main
und dann erst max
.