1.3. Anwendungsgebiete von C++:
• C++ ist eine allgemein verwendbare Programmiersprache
• hauptsächliches Anwendungsgebiet ist Systemprogrammierung im weitesten Sinne
• Ein neues Betriebssystem, welches vor kurzem auf den Markt kam, unterstützt die Programmierung von Anwendungen indem es Klassen von C++ mit Dokumentation mitliefert. Dieses Betriebssystem heißt BeOS.
• weiterer Einsatz von C++ liegt auch in der Spieleprogrammierung
o Besonders zeitkritische Spiele wie 3D-Shooter (zum Beispiel Quake) profitieren von der hohen Geschwindigkeit von C++.
Große Vorteile:
1. objektorientierte Programmiersprache
2. leichte Übertragfähigkeit in andere Betriebssysteme
3. Kürze, wenig Befehle, abe r ausreichend (Knappheit dieser)
4. Schnelligkeit
5. Übertragbarkeit von C einfach zu realisieren, notwenig für Erweiterungen
6. gutes Verständnis für Leser (übersichtlich)
2. Wichtige Unterschiede zu TP
2.1. C++-Klasse namens iostream
• Die Klasse iostream verwendet streams (Ströme), um grundlegende Ein/Ausgabeoperationen durchzuführen - beispielsweise die Ausgabe von Text auf dem Bildschirm oder das Einlesen der Benutzereingabe.
• Über den cout-Strom werden Daten an den Standardausgabestrom gesendet
• Über den cin-Strom werden beispielsweise Benutzereingaben eingelesen.
• zwei spezielle Operatoren: Übergabeoperator (<<) und Übernahmeoperator (>>)
•
um nach der Klassendeklaration von
iostream
zu suchen:
#include
• Compiler-Fehler: Undefined symbol 'cout' (wenn Header-Datei vergessen wurde)
2.2. Die main()-Funktion
Jedes C/C++-Programm muß über eine main()-Funktion verfügen. Diese Funktion stellt den Einstiegspunkt in das Programm dar.
In C++ beginnt ein Codeblock mit einer öffnenden ({) und endet mit einer schließenden geschweiften Klammer (})
2.3. Vergleich von TP und C++
2
3. Variablen
3.1. Variablentypen
Es könnten zwei Datentypen gemischt werden, denn C/C++ ist imstande, eine automatische Umwandlung vorzunehmen. Dies liegt daran, dass die Zahlen umbrochen werden.
3.2. Operatoren
Die Variablendekleration kann global sowie auch lokal erfolgen, abhängig vom Gebrauch! Das Schlüsselwort const ermöglicht es, eine Variable als Konstante zu deklarieren.
3.3. Beispielprogramm
#include
x = 100; x += 50; int y = 150; // 'y' deklariert und mit 150 initialisiert x += y; // 'x' enthält jetzt den Wert 300 x++; // 'x' enthält jetzt den Wert 301 }
3
4. Schleifen
4.1. while-Schleifen
While-Schleifen enthalten nur eine Testbedingung, die zu Beginn eines jeden Durchlaufes neu geprüft wird. Solange die Testbedingung „wahr“ ist, wird die Schleife durchlaufen. Ø While (Bedingung) { Anweisung; }
4.2. do-while-Schleifen
In der do-while-Schleife erfolgt die Überprüfung der Bedingung am Ende der Schleife. Ø do { Anweisungen; } while (Bedingung)
4.3. for-Schleifen
for-Schleifen sind die am häufigsten verwendete Schleife.
Sie benötigt drei Parameter: den Ausgangswert, die Testbedingung, die festlegt, wann die Schleife abbricht, und den Inkrementausdruck.
4.4 Beispielprogramm für eine for-Schleife
#include
void main ( void ) {
for (int iX = 1; iX < 11;iX++ ) { cout << iX <<'\t'; } }
5. Anweisungen
5.1. break-Anweisung
Sie dient dazu, die Ausführung einer Schleife schon vor der Erfüllung der Testbedingung anzuhalten. Wenn zum Beispiel ein Feld mit Integerwerten nach einer bestimmten Zahl durchsuchen wird , erhält man den Index der gesuchten Zahl am schnellsten, wenn der Suchlauf bei der gefundenen Zahl abgebrochen wird.
5.2. switch-Anweisungen
Die switch-Anweisung kann man auch als erweiterte if-Anweisung betrachten. Sie erlaubt es, in Abhängigkeit von dem Wert eines bestimmten Ausdrucks zu verschiedenen Anweisungsblöcken zu springen. Der erste Teil besteht aus dem Ausdruck, danach folgen die case-Anweisungen, die den Ausdruck auf Gleichheit prüfen.
4
5.3. Beispielprogramm für switch
#include
void main()
{
cout << "Bitte geben sie Geschwindingkeitsüberschreitung an!(10,15,20,25oder 35)"; int x; cin >> x; int Strafe; switch(x) {
}
cout << "Ihre Strafe ist " << Strafe << endl; }
6. String
6.1. Entstehung von String
Es mag zwar ungewöhnlich erscheinen, aber es gibt in C/C++ keine Unterstützung für String-Variablen. Statt dessen werden Strings in C/C++-Programmen durch Felder des Datentyps char repräsentiert.
Sie könnten zum Beispiel einen String einem Zeichen-Feld wie folgt zuweisen: Ø char text[] = "Dies ist ein String"; oder mit Hilfe eines Zeigers: Ø char * text = "Dies ist ein String";
5
6.2. Beispielprogramm
#include
void main()
{
char str[] = "Dies ist ein String"; cout << str << endl; str[7] = '\0'; cout << str << endl; char *str2= "Dies ist auch ein String"; cout << str2 << endl; }
7. Funktionen
• Bevor eine Funktion verwendet werden kann, muß sie erst einmal deklariert werden
• Funktionen können eine beliebige Zahl von Parametern aufnehmen, können jedoch nur einen Wert zurückliefern
7.1 Beispielprogramm
#include
void fnB (void); //Deklaration von Funktionen void fnA (void);
void main (void) //Hauptprogramm { fnA (); }
void fnA (void) //Implentation (Definition) { cout << "A" << endl; fnB (); }
void fnB (void)
{ cout << "B" << endl; }
6
8. Strukturen
8.1. Definition
• eine Struktur ist eine Sammlung von verwandten Daten in einer einzigen Speichereinheit
• die in einer Struktur aufgeführten Variablen nennt man auch Strukturelemente
• Achtung: das Semikolon nach der schließenden Klammer der Strukturdeklaration
§ (fester Bestandteil jeder Struktur- oder Klassendeklaration)
• Instanzen einer Struktur können auch schon bei einer Deklaration erzeugt werden
§ (am Ende der Strukturdeklaration zwischen der schließenden Klammer und dem Semikolon, einen (oder mehrere) Variablennamen anführen!)
• mit dem Punktoperator definiert man eine Elementvariable von struct
• gibt eine noch bedeuterende Struktur: die Klasse Klassen:
• fast gleiche Struktur wie struct (Schlüsselwort: class , Klammerpaar, von Semikolon beendet), bloß kompakter
• ein Anwenderprogramm kann dann mit #include “klassenname.h“ die Klasse benutzen
8.2. Beispiel
#include
void main(void)
{ struct tname { int alter; char name[20]; }; int index=0; tname neu[3]; do {
cout<< "Bitte geben Sie ihren Namen ein"<
cout<< "Name:"<
7
9. Zeiger
9.1. Beispielprogramm
#include
void
main (void) { int iX = 0; char cZeichen = 'K'; //wird ein Zeichen festgelegt
char * strName = "Anne Baumgrass"; //ein Zeiger von char zeigt auf d. Namen
for (;;)
{
}
cout << "cZeichen" << cZeichen << endl;
cout << "strName = " << strName << endl; cout << "*strName = " << *strName << endl;
zeigt(Anfang)
cout << "strName [2] = " << strName[2] << endl; //gibt nur den dritten Buchstaben aus cout << "*(strName+2) = " << *(strName+2) << endl; //gibt auch nur dritten Buchstaben //aus(Zeiger zeigt darauf) cout << "(strName+2) = " << (strName+2) << endl; //gibt ab dem dritten Buchstaben die //Zeichen aus }
10. Dynamischer Speicher
10.1. Definition
Wenn man zu große Felder, Strukturen oder Klassen einsetzen möchte , wird man auf die dynamische Speicherbelegung von Speicher auf dem Heap zurückgreifen müssen. Dieser Heap umfaßt den freien physikalischen RAM des Computers sowie sämtlichen freien Festplattenspeicher.
Der Speicher kann also lokal (auf dem Stack) oder dynamisch (auf dem Heap) reserviert werden.
Die Speicherreservierung in C++-Programmen erfolgt mit Hilfe des new-Operators. Die Freigabe des Speichers erfolgt dann mit dem Operator delete.
10.2. Beispiele
Ø char kleinerspeicher[80]; //dafür ist lokaler Speicher noch groß genug
char* grosserspeicher = new char[4096]; //dafür (4096) dynamischer Speicher gee
8
Arbeit zitieren:
Anne Baumgraß, 2001, Programmiersprache C++, München, GRIN Verlag GmbH
Dieser Text kann über folgende URL aufgerufen und zitiert werden:
Einbetten
DOI
Anne Baumgraß hat den Text Programmiersprache C++ veröffentlicht
Anne Baumgraß hat einen neuen Text hochgeladen
bbcat hat den Text Programmiersprache C++ kommentiert
Java als erste Programmiersprache
Vom Einsteiger zum Profi
Cornelia Heinisch, Frank Müller-Hofmann, Joachim Goll
David Flanagan, Yukihiro Mastumoto, Sascha Kersken, Thomas Demmig
Übersetzung objektorientierter Programmiersprachen
Konzepte, abstrakte Maschinen ...
Bernhard Bauer, Riitta Höllerer
C als erste Programmiersprache
Vom Einsteiger zum Fortgeschri...
Manfred Dausmann, Ulrich Bröckl, Joachim Goll, Dominik Schoop
GI - 3. Fachtagung über Programmiersprachen
Gesellschaft für Informatik e....
B. Schlender, W. Frielinghaus
bbcat
Erfinder von C.
C ist, soweit ich weiß, von Kernighan / Richie erfunden worden.
C++ von Stroustrop, das ist klar.
am Tuesday, January 07, 2003-