Programmiersprache C/C++
6.3.2. Aggregierte Datentypen
Der Wert eines aggregierten Datentyps besteht aus Komponenten, deren
Datentyp elementar oder wiederum aggregiert ist.
Aggregierte Datentypen stehen in den meisten Programmiersprachen zur
Verfügung. Programmiersprachen können aggregierte Datentypen auf
zwei Ebenen unterstützen:
-
Sie stellt Konstruktoren zur Verfügung, mit deren Hilfe der Aufbau
eines aggregierten Datentyps beschrieben werden kann.
-
Sie verfügen über vordefinierte aggregierte Datentypen.
Typische Beispiele für aggregierte Datentypen sind Zeichenketten und
komplexe Zahlen.
Hinsichtlich der Anwendung der Konstruktoren gibt es folgende
Möglichkeiten:
-
Die Konstruktoren werden innerhalb einer Variablen-Deklaration
notiert.
Diese Möglichkeit war bereits in den ersten höheren
Programmiersprachen vorhanden (ARRAY-Konstruktor).
Auf diese Weise werden anonyme aggregierte Datentypen definiert:
Die eingeführten Datentypen besitzen keinen Namen, es ist nicht
möglich, an anderer Stelle auf solche Datentypen Bezug zu nehmen.
-
Die Konstruktoren werden innerhalb einer Typ-Deklaration notiert.
Die eingeführten Datentypen besitzen einen Namen, in anderen
Programmteilen kann auf sie Bezug genommen werden, d.h. sie können
nachgenutzt werden.
Die wichtigsten Konstruktoren für aggregierte Datentypen sind:
-
ARRAY
Reihung, Bildung von Feldern
alle Komponenten einer Reihung besitzen stets den gleichen Datentyp
eine Komponente wird über einen Index bzw. eine Menge von Indizes
angesprochen:
array_name[index] bzw.
array_name[index_1]...[index_n]
-
RECORD
Verbund
die Komponenten eines Verbundes können unterschiedlichen Datentyp
besitzen
jede Komponente besitzt einen eigenen Namen
angesprochen wird eine Komponente in folgender Weise:
record_name.komponenten_name
-
SET
Menge
die Komponenten einer Menge besitzen stets den gleichen Datentyp
Arrays und Records (struct) werden in C/C++ direkt unterstützt,
für die Arbeit mit Mengen gibt es standardmäße
Unterstützung.
Die mit einem aggregierten Datentyp verbundenen Operationen sind
vordefiniert.
Zu unterscheiden sind
-
Operationen über dem (aus verschiedenen Komponenten bestehenden)
Wert - diese sind abhängig vom Konstruktur
-
Operationen über den Wert-Komponenten - diese sind abhängig vom
Datentyp der Komponente
Alle Komponenten eines Werts mit aggregiertem Datentyp sind
uneingeschränkt sichtbar.
Alle Operationen, die gemäß des Datentyps einer Komponente in
Frage kommen, sind auf diese Komponente uneingeschränkt anwendbar.
Abstrakte Datentypen beschreiben wie aggregierte Datentypen zusammengesetzte
Werte, bieten jedoch die Möglichkeit, diese abzuschirmen:
-
Komponenten eines abstrakten Datentyps können nach außen
verborgen werden.
-
Auf die Komponenten eines abstrakten Datentyps kann nicht einzeln
zugegriffen werden, sondern nur mit Hilfe spezieller Methoden.
Zurück zum Menü
Zurück zur vorigen Seite
Weiter zur nächsten Seite
P. Böhme, 15.12.1995