Beispielprogramm: MASTOFFN.CPP
Das Programm MASTOFFN.CPP ist ein Beispiel, das einige ernsthafte Probleme aufzeigt, die wir dann im nächsten Beispielprogramm mithilfe des Zugriffsschutzes überwinden werden.
Wir deklarieren zwei Strukturen, eine für ein Rechteck, die andere für einen Masten. Die einzelnen Datenfelder sollten klar sein, mit Ausnahme der Tiefe des Fahnenmasten, wobei es sich darum handelt, wie tief er im Boden verankert ist. Die gesamte Länge des Fahnenmasten ergibt sich demnach aus der Laenge plus der Tiefe.
Bild 5-4 zeigt den Speicher für dieses Programm
nach dem Abarbeiten der Zeile
34. Mit Deiner Erfahrung im Programmieren in ANSI-C sollten beim
Verständnis dieses Programmes keinerlei Probleme
auftreten. Einzig das Ergebnis der Zeile 40, wo wir die
Hoehe des Quadrat mit der Breite der
Box multiplizieren, wird Dich etwas verwundern. Das ist in
ANSI-C genauso wie in C++ erlaubt, hat aber keine "weltliche"
Bedeutung und keinen Sinn, da die Daten von zwei verschiedenen
Elementen stammen. So ist das Ergebnis von Zeile 42 noch sinnloser, denn
das Produkt der Hoehe des Quadrat und der
Tiefe des Fahnenmast hat absolut keine Bedeutung
in irgendeinem denkbaren physikalischen System. In einem Programm, das
so einfach ist wie dieses, ist der Fehler offensichtlich, in einem
größeren Programm schleichen sich solche Fehler aber sehr
leicht ein und sind oft nur sehr mühsam wieder zu finden.
Wäre es nicht schön, wenn wir einen Weg fänden, solche dummen Fehler in großen Industrieprogrammen zu vermeiden? Hätten wir ein gutes Programm, das genau definiert, welche Dinge wir mit einem Rechteck anstellen können und ein zweites Programm, das genau definiert, was wir mit einem Mast tun können und wären die Daten vor äußerem Zugriff geschützt, dann könnten wir solche Dinge verhindern. Wenn diese Elemente miteinander arbeiten sollen, können wir sie nicht in einzelnen Programmen verwirklichen, wohl aber können wir sie auf Klassen aufteilen, um unser Ziel zu erreichen.
Es wird Dich nicht überraschen, daß unser nächstes Programm genau das für uns tun wird und noch dazu in einer eleganten Art und Weise. Bevor wir aber weitergehen, solltest Du dieses Programm kompilieren und laufen lassen und Dich an den abstrusen Ergebnissen erfreuen.
Copyright © 1997, 1998, 2001-2006 Heinz Tschabitscher - Letzte Änderung 12. Dezember 2005
Heinz Tschabitscher - | Datenschutz | Impressum - Kommentare, Kritik, Anregungen, Ideen?
[ ist: ]