C++ lernen und verstehen. Die Sprache und ihr Strukturen

C++ lernen und verstehen. Die Sprache und ihr Strukturen

von: Wolfgang Soltendick

C & L Computer- und Literaturverlag GmbH, 2003

ISBN: 9783936546019 , 599 Seiten

Format: PDF, OL

Kopierschutz: DRM

Windows PC,Mac OSX Apple iPad, Android Tablet PC's Online-Lesen für: Windows PC,Mac OSX,Linux

Preis: 10,00 EUR

Mehr zum Inhalt

C++ lernen und verstehen. Die Sprache und ihr Strukturen


 

2 Einführung (S. 25-26)

In diesem Buch soll es um die Einführung in eine objektorientierte Programmsprache mit dem Namen C++ gehen. Doch wozu benötigt man überhaupt eine objektorientierte Sprache, denn die ersten Windows- Systeme und auch der Linux-Kernel sind nicht damit programmiert? Was hat C++ für Vorteile und was bedeuten die in Zusammenhang immer benutzen Begriffe Vererbung, Objekte und Klassen? Die Antworten stehen in diesem Buch in den nachfolgenden Kapiteln.

2.1 Prozedurale Sprachen

Zu den prozeduralen Sprachen gehören beispielsweise C und Pascal. In diesen wird durch jedem Befehl dem Computer mitgeteilt, was er zu tun hat, wie beispielsweise eine Berechnung auszuführen oder das entsprechende Ergebnis auszugeben. Aus diesem Grund enthält bei kleinen Programmen jede Zeile eine Anweisung, die Zeilen werden nacheinander abgearbeitet. In größeren Programmen dagegen werden einzelne Programmteile in Funktionen ausgelagert, die dann an bestimmten Stellen aufgerufen werden. Damit soll das Programm lesbarer werden, was sicherlich auch der Fall ist, wenn die Funktionen sinnvoll gegliedert sind. Wenn man mehrere Funktionen zusammenfaßt, faßt man sie in sogenannte Module zusammen. Sie lassen sich getrennt vom restlichen Programm übersetzen, so daß man mit ihnen Bibliotheken, bestehend aus Funktionen, realisieren kann. Bietet der Compiler die Möglichkeit, sie in das eigene Programm einzubinden, steht einem modularen Aufbau nichts mehr im Wege. Damit werden die Grundkonzepte der modularen Programmierung eingehalten. Allerdings stößt auch sie an ihre Grenzen, wenn die Programmme größer und komplexer werden.

Bei diesem Typ von Programmiersprachen liegt das Hauptaugenmerk auf den Anweisungen, die beschreiben, was alles zu erledigen ist. Die Daten spielen dabei eine eher untergeordnete Rolle, obwohl sie es sind, mit denen die einzelnen Funktionen etwas ausführen. Denn ohne Daten würden beispielsweise die Funktionen zur Verwaltung ins Leere laufen, das heißt, sie kommen nicht ohne aus. Die Daten werden mit den Funktionen eingelesen, ausgewertet und auch ausgegeben. Aber wie können die Daten beschaffen sein?

Häufig werden die Daten in globalen Variablen innerhalb des Programms festgelegt. Das Wort global bedeutet dabei, daß die Variablen außerhalb der Funktionen in einem Programm deklariert werden. Damit sind sie für alle Funktionen sichtbar, die auf sie dann zugreifen. Doch es sind in prozeduralen Sprachen auch lokale Variablen vorhanden, die in den jeweiligen Funktionen deklariert werden. Diese sind nur in der jeweiligen Funktion sichtbar, so daß andere auf sie nicht zugreifen können. Der Hauptgrund, warum man schließlich zum Einsatz der objektorientierten Sprachen übergegangen ist, besteht letztendlich darin, daß sie die Wirklichkeit besser abbilden. Allerdings funktioniert das nur zufriedenstellend, wenn der Programmierer zu diesem Schritt in der Lage ist und den richtigen Ansatz gewählt hat.

2.2 Objektorientierte Sprachen

Wie zuvor angedeutet, soll der objektorientierte Ansatz die Wirklichkeit besser abbilden können. In diesem Konzept werden die Daten und die damit arbeitenden Funktionen zu einer Einheit zusammengefaßt. Diese wird als Objekt bezeichnet.

Die in einem Objekt enthaltenen Funktionen werden auch als Komponentenfunktionen oder Methoden bezeichnet. Sie sind in der Regel die einzigen Funktionen, mit deren Hilfe man auf die Daten zugreifen kann. Das bedeutet andererseits, daß die Daten so geschützt beziehungsweise verborgen sind, daß sie nicht unbeabsichtigt geändert werden können, dazu muß man eine entsprechende Funktion aufrufen. Die Daten sind also im Objekt eingekapselt.

In einem C++-Programm gibt es in der Regel mehrere unterschiedliche Objekte, die gegenseitig die Komponentenfunktionen der jeweils anderen Objekte aufrufen. Wie das erfolgt, hängt natürlich vom jeweiligen Anwendungszweck ab. In einigen anderen objektorientierten Sprachen werden diese Funktionen auch Methoden genannt und die Datenelemente als Instanzvariablen bezeichnet. Wird eine Komponentenfunktion aufgerufen, spricht man dann vom »Senden einer Nachricht«. Diese Begriffe werden aber bei C++ nicht verwendet.