Beispielprogramm: UNION.CPP
Das Beispielprogramm UNION.CPP zeigt eine freie Union. Während in ANSI-C alle Unionen einen Namen haben müssen, ist dies in C++ nicht notwendig. In C++ können wir eine freie Union, eine namenlose Union verwenden. Die Union ist in eine einfache Struktur eingebettet und Du hast sicher bemerkt, daß auf die Deklaration der Union in Zeile 13 kein Variablenname folgt. In ANSI-C hätten wir die Union benennen und dreifache Namen (drei Namen mit Punkten dazwischen) vergeben müssen, um auf die Mitglieder der Union Zugriff zu haben. Da es sich hier aber um eine freie Union handelt gibt es keinen Namen der Union und daher genügt auch ein doppelter Name, um auf die Mitglieder zuzugreifen, wie unter anderem die Zeilen 20, 24 und 28 zeigen.
Du wirst Dich daran erinnern, daß eine Union alle ihre Daten auf derselben Stelle im Speicher ablegt, sodaß effektiv immer nur eine Variable verfügbar ist. Genau das geschieht auch hier. Die Variablen mit den Namen Tankinhalt, Bomben und Paletten werden an derselben Stelle gespeichert und es obliegt der Programmiererin, Buch zu führen, welche der Variablen denn nun gerade dort gespeichert wird. Dem Transporter wird in Zeile 28 ein Wert für Paletten zugewiesen, in Zeile 30 dann ein Wert für Tankinhalt. Wenn wir den Wert für Tankinhalt zuweisen, geht der Wert für Paletten verloren und ist nicht mehr verfügbar, da er ja dort gespeichert war, wo jetzt Tankinhalt abgelegt ist. Unionen werden also in C++ genauso verwendet wie in C, die Benennung der Komponenten ausgenommen.
Den Rest des Programmes verstehst Du sicherlich mit Leichtigkeit. Kompiliere es und führe es aus.
Copyright © 1997, 1998, 2001-2006 Heinz Tschabitscher - Letzte Änderung 27. März 2005
Heinz Tschabitscher - | Datenschutz | Impressum - Kommentare, Kritik, Anregungen, Jobs?