Unäre Operatoren und Zuweisungsoperatoren sind rechts-assoziativ; alle anderen sind links-assoziativ.

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Unäre Operatoren und Zuweisungsoperatoren sind rechts-assoziativ; alle anderen sind links-assoziativ."

Transkript

1 ANHANG 49 A.l Tabelle der Operatoren Übersicht über die Operatoren und ihre Prioritäten: Unäre Operatoren und Zuweisungsoperatoren sind rechts-assoziativ; alle anderen sind links-assoziativ. Beispiele: a=b=c bedeutet a = (b = c ), a+b+c bedeutet (a + b) + c und *p++ bedeutet *(p++ ). In der folgenden Tabelle befinden sich in jedem Block Operatoren gleicher Priorität. Ein Operator in einem höheren Block hat Vorrang vor einem in einem niedrigeren Block. Definition von lvalue: Ein Objekt ist ein Speicherbereich, ein lvalue ist ein Ausdruck, der sich auf ein Objekt bezieht. Ouerator Bedeutun~:: Bei:wi~I.. Scope dass name :: member.. Global ::name.. -> Member-Auswahl pointer -> member Member-Auswahl dass name.member [] Vektoren pointer [ expr] () Funktionsaufruf expr(expr Iist) () Wertkonstruktion type(expr Iist) sizeof Objektgröße sizeof expr sizeof Typgröße sizeof(type)

2 350 Anhang ++ Post-Inkrementierung lvalue++ ++ Prä-Inkrementierung ++lvalue Post-Dekrementierung lvalue-- Prä-Dekrementierung --lvalue Komplement -expr nicht!expr unäres Minus -expr + unäres Plus +expr & Adresse von &lvalue * Dereferenz *expr new kreieren new type delete löschen delete pointer delete[] lösche Vektor delete [expr] pointer () Typkonversion (cast) (type) expr -->* Member-Zeiger-Auswahl pointer->*pointermember * Member-Zeiger-Auswahl class-member. *pointermember * multiplizieren expr * expr I dividieren expr I expr % modulo expr% expr + addieren expr + expr subtrahieren expr- expr << links-shift lvalue << expr >> rechts-shift lvalue >> expr < kleiner als expr < expr <= kleiner oder gleich expr <= expr > größer als expr > expr >= größer oder gleich expr >= expr -- gleich expr == expr!= ungleich expr!= expr

3 Anhang 351 & bitweises UND expr & expr A bitweises exklusives ODER expr" expr bitweises inklusives ODER expr I expr && logisches UND expr && expr II logisches ODER expr II expr? : arithmetisches IF expr? expr : expr = einfache Zuweisung lvalue = expr *= muliplizieren und zuweisen lvalue *= expr I= dividieren und zuweisen lvalue I= expr %= modulo und zuweisen lvalue %= expr += addieren und zuweisen lvalue += expr -= subtrahieren und zuweisen lvalue -= expr <<= linksschieben und zuweisen lvalue <<= expr >>= rechtsschieben und zuweisen lvalue >>= expr &= UND und zuweisen lvalue &= expr I= inklusivesoderund zuweisen lvalue I= expr "= exklusives ODER und zuweisen lvalue "= expr Komma (Sequenz) expr, expr

4 352 Anhang A.2 Tabelle der reservierten Wörter Folgende Wörter sind reserviert und dürfen nicht anderweitig benutzt werden: asm auto break case catch char class const continue default delete do double else enum extern float for friend goto if inline int long new operator private protected public register return short signed sizeof static struct switch template this throw try typedef union unsigned virtual void volatile while Erläuterungen zu den reservierten Wörtern asm, auto, register, volatile: asm: Durch asm(string) wird die Assembler-Anweisung String ohne Compilierung an den Assembler weitergereicht. auto: Objekte, die in Blöcken deklariert werden, oder für formale Parameter einer Funktion kann zusätzlich das Schlüsselwort auto angegeben werden. Hierdurch wird (analog zu den Schlüsselwörtern static und extern) die Speicherklasse des Objektes festgelegt. Solche Objekte haben nur Gültigkeit innerhalb eines Blockes oder einer Funktion. Im allgemeinen ist die Verwendung der Angabe auto überflüssig und dient nur der besseren Lesbarkeit komplizierter Deklarationen/Defmitionen, z.b. auto double* (*p) [5]; register: Mittels der zusätzlichen Angabe des Schlüsselwortes register wird ein Objekt als ein Objekt der Speicherklasse auto (s. oben) gekennzeichnet. Diese Angabe ist ein Hinweis an den Compiler, daß dieses Objekt sehr häufig im Programm angesprochen wird und es somit aus Effizienzgründen vorteilhaft wäre, den Wert des Objektes in einem CPU-Register zu halten. register float i;

5 Anhang 353 volatile: Objekte können zusätzlich als volatile (flüchtig) definiert werden. Volatile ist ein Hinweis an den Compiler eine Optimierung an den Stellen zu vermeiden an denen solche Objekte auftreten. Dies ist zum Beispiel erforderlich, wenn der Wert des Objekts nicht nur durch das Programm geändert wird, sondern beispielweise auch durch andere laufende Programme. Typisches Beispiel für solche Objekte sind Ports. volatile int ports[lo]; int i i I* *I port [0]; port[o]; Die beiden Anweisungen werden hier nicht zu der Anweisung int i = port[o]; optimiert, da port ein volatile-objekt ist. A.3 Tabelle der besonderen Zeichen Folgende Zeichen haben eine spezielle Bedeutung und werden insbesondere zur Steuerung der Ausgabe verwendet: '\a' '\b' '\f' '\n' '\r' '\t' '\v' '\ \' '\, ' '\ n' '\?' Alarm (Klingel) Backspace Seitenvorschub neue Zeile Carriage Return Horizontaler Tabulator Vertikaler Tabulator Backslash Einfaches Anführungszeichen Doppeltes Anführungszeichen Fragezeichen

6 354 Anhang A.4 Tabelle der Anweisungen Die folgende Beschreibung richtet sich nach der ANSI C++ Spezifikation. Der Index opt kennzeichnet optionale Ausdrücke bzw. Anweisungen, d.h. diese können auch ausgelassen werden. statement:: labelled-statement expression-statement coumpound-statement selection-statement iteration-statement jump-statement declaration-statement labelled-statement: identifier : statement case constant-expression default: statement statement expression-statement: expressionopt compound-statement: { statement-listopt statement-/ist: statement statement-list statement selection-statement: if ( expression ) statement if ( expression ) statement else statement switch ( expression ) statement iteration-statement: while ( expression ) statement da statement while ( expression ; for ( for-init-statement expressionopt expres sionopt statement for-init-statement: expression-statement declaration-statement

7 Anhang 355 jump-statement: break ; continue ; return expressionopt goto identifier declaration-statement: declaration Man beachte, daß eine Deklaration eine Anweisung ist, und daß es keine Zuweisungsanweisung oder Funktionsaufrufanweisung gibt. Dies sind spezielle Ausdrücke. A.S Tabelle der Ausdrücke Die folgende Beschreibung richtet sich nach der ANSI C++ Spezifikation. expression : assignment-expression expression, assignment-expression assignment-expression: conditional-expression unary-expression assignment-operator assignment-expression assignment-operator: einer aus *= I= %= += >>= <<= &= A= I= conditional-expression: logical-or-expression logical-or-expression? expression conditional-expression logical-or-expression: logical-and-expression logical-or-expression I I logical-and-expression logical-and-expression: inclusive-or-expression logical-and-expression && inclusive-or-expression inclusive-or-expression: exclusive-or-expression inclusive-or-expression exclusive-or-expression: and-expression exclusive-or-expression A exclusive-or-expression and-expression

8 356 and-expression: equality-expression and-expression & equality-expression equality-expression: relational-expression equality-expression equality-expression relational-expression!= relational-expression relational-expression: shift-expression relational-expression relational-expression relational-expression relational-expression shift-expression: additive-expression shift-expression << shift-expression >> < shift-expression > shift-expression <= shift-expression >= shift-expression additive-expression additive-expression additive-expression: multiplicative-expression additive-expression + multiplicative-expression additive-expression multiplicative-expression multiplicative-expression: pm-express i on multiplicative-expression multiplicative-expression multiplicative-expression * I % pm-expression pm-expression pm-expression pm-expression: cast-expression pm-expression * cast-expression pm-expression ->* cast-expression cast-expression: unary-expression ( type-name } cast-expression unary-expression: postfix-expression ++ unary-expression unary-expression unary-operator cast-expression sizeof unary-expression sizeof ( type-name } allocation-expression deallocation-expression unary-operator: einer aus * & +

9 Anhang 357 allocation-expression: ::opt new placementopt ::opt new placementopt placement: ( expression-list new-type-name ( type-name ) new-initializeropt new-initializeropt new-type-name: type-specifier-list new-declaratoropt new-declarator: * cv-qualifier-listopt new-declaratoropt complete-class-name ::cv-qualifier-listopt new-declaratoropt new-declaratoropt [ expression ] ( Hierbei bezeichnet cv-qualifier-list eine Liste bestehend aus den Wörtern const und volatile) new-initializer: ( initializer-listopt deallocation-expression: ::opt delete cast-expression ::opt delete [] cast-expression postfix-expression: primary-expression postfix-expression postfix-expression simple-type-name postfix-expression name postfix-expression -> name postfix-expression ++ postfix-expression expression ] expression-listopt expression-listopt expression-/ist: assignment-expression expression-list, assignment-expression primary-expression: literal this.. identifier.. operator-function-name.. qualifi.ed-name expression ) name

10 358 Anhang name: identifier operator-function-name - class-name qualified-name qualified-name: qualified-class-name name literal: integer-constant character-constant floating-constant string-literal A.6 Hinweise zur Benutzung von UNIX -Rechnern Die folgende kurze Zusammenfassung erläutert e1mge wichtige und elementare Schritte zur Benutzung von UNIX-Rechnern. Die angegebenen Kommandos sind allerdings von der jeweiligen UNIX-Version abhängig. 1. Eröffnen einer Terminalsitzung: Nach dem angezeigten Wort login: ist die Benutzerkennung einzugeben und <CR> (Carriage Return) zu drücken. Beenden Sie alle Eingaben mit <CR>. Nach dem angezeigten Schlüsselwort password: ist das Passwort einzugeben, welches nicht auf dem Bildschirm angezeigt wird. 2. Aufruf des Manuals: Mit dem Befehl man <kommandoname> TM UNIX ist ein eingetragenes Warenzeichen der AT&T Bell Laboratories.

11 Anhang 359 lassen sich häufig Informationen über das angegebene Kommando (z.b. cp für copy) abrufen (sogenannte Online-Hilfe). Kennt man das Kommando nicht, so lassen sich Informationen über in Frage kommende Komandos mit dem Befehl man -k <bel. Wort (teil)> abrufen (so z.b. die Suche nach einem Befehl zum Kopieren von Dateien mittels man -k cop ). 3. Grundlegende Befehle zur Dateibehandlung: Folgende Kommandos sind grundlegende Befehle beim Umgang mit Dateien. Thre genaue Bedeutung und ihre Optionen kann man im Handbuch nachlesen oder wieder über die Online-Hilfe erfragen. ls cp mv rm more Auflisten der Namen der Dateien im aktuellen Directory Kopieren von Dateien Umbenennen von Dateien Löschen von Dateien Ausgabe einer Datei auf dem Bildschirm {alternativ pg oder less) A. 7 Hinweise zum Compiler Da die vielfältigen Optionen beim Aufruf des C++-Compilers bei den verschiedenen Herstellern und den verschiedenen Betriebssystemen stark variieren, sollen an dieser Stelle nur einige nützliche Hinweise gegeben werden. A.7.1 Aufruf des C++-Compilers: Generell gilt, daß die Quelldatei mit einem Suffix zu versehen ist. Dieser Suffix variiert aber zwischen den verschiedenen Implementationen von C++. Unter Unix sind zwei Suffixe gebräuchlich: 1).c (.c zeigt hier die enge Verbindung zu C, da in C alle Quelldateien mi.t dem Suffix.c enden müssen).

12 360 Anhang 2).C (Zur Unterscheidung von den C-Quelldateien empfohlen). Unter M S-D 0 S wird zwischen Groß- und Kleinschreibung nicht unterschieden. Hier sind zwei andere Suffixe gebräuchlich: 1).cxx (ein x um 45 Grad gedreht ist ein +) 2).cpp (p =plus) CC ist üblicherweise der Aufrufname des AT&T-C++-Compilers (cc der des C-Compilers). Bei Compilern anderer Hersteller wird es natürlich andere Namen geben können. Wird ein Programm mittels des C++-Compilers korrekt kompiliert, so wird automatisch ein ausführbares Programm mit Namen a.out generiert (wie in C auch). Will man dem ausführbaren Programm gleich beim Compiler-Aufruf einen anderen (sinnvolleren) Namen geben, so kann man dies mit der o-option tun (s. u.). Üblicherweise wird bei der Auslieferung des C++-Compilers auch standardmäßig eine gewisse Menge von Standard-Header-Dateien mitgeliefert, wie etwa die oft erwähnte iostream.h. Im Quellprogramm werden solche standardmäßig vorhandenen Reader-Dateien durch eckige Klammem der folgenden Art gekennzeichnet: #inc1ude <iostream.h> Der Anwender braucht sich nicht darum zu kümmern, diese Dateien beim Aufruf des Compilers hinzu zu binden; es geschieht automatisch. Möchte er jedoch selbstdefinierte Dateien einbinden, so muß er diese im Quellprogramm durch Anführungszeichen angeben: #inc1ude "meine datei.h" und beim Aufruf die I-Option des Compilers einschließlich des kompletten Suchpfades verwenden (s. u.). Ein Aufruf des C++-Compilers kann damit etwa wie folgt aussehen: CC <zu kompilierende Datei> <-I <evt1. anzubindende Header-Datei> > <-o <Ausgabedatei> > <zu kompilierende Datei> bezeichnet die zu übersetzende Datei (einschließlich dem gebräuchlichen Suffix).

13 Anhang 361 <-1 <evtl. anzubindende Header-Datei> > ist optional und gilt nur für selbstdefinierte Header-Dateien. Die Standard-Header-Dateien (üblicherweise unter lusrlinclude!cc ) werden automatisch angebunden. <-o <Ausgabedatei>> ist ebenfalls optional. Wird der Befehl weggelassen, so wird das ausführbare Programm unter UNIX nach a.out geschrieben. A.7.2 Präprozessor-Anweisungen Unter Präprozessor-Anweisungen sind solche Anweisungen zu verstehen, die direkt im Quellprogramm stehen, wie etwa #include <iostream.h>. Präprozessor-Anweisungen beginnen immer mit einem# in der ersten Spalte der Datei. Hinweis: Diese Einschränkung ist teilweise nicht mehr notwendig. Gemäß der ANSI C++ Spezifikation dürfen auch white space characters vor dem Zeichen# auftreten. Diese Präprozessor-Anweisungen werden vor der Compilierung durch einen Präprozessor ausgeführt und seine Ausgabe wird als Eingabe für den C++ Compiler verwendet. Neben der bereits erklärten include-anweisung sind noch einige andere Anweisungen nützlich: 1) Mittels der define-anweisung können Konstanten definiert werden (eher in C gebräuchlich, weil dies in C++ durch Verwendung von const unnötig geworden ist) oder dem Programm Namen bekannt gemacht werden (vergleiche hierzu Punkt 2): itdefine NULL 0 itdefine IOSTREAM.H Bei der Angabe solcher auch als Makro bezeichneten Definitionen, ist auch die Angabe von Parametern möglich: itdefine square(x) X * X Solche Makrodefinitionen sollten allerdings sehr sorgfaltig vorgenommen werden. So wird z.b. die Anweisung int a 3; int b = square(a++ + 1); ersetzt zu

14 362 Anhang int b = a * a++ + 1; welches sicherlich nicht den gewünschten Effekt hat. Teilweise läßt sich dieser Fehler durch vollständige Klammerung beheben: #define square (x) ( (x) * (x) ) Dies verhindert allerdings nicht die zweimalige Inkrementierung von a. Wie dieses einfache Beispiel zeigt, sollten de.fine-anweisungen nur sehr selten benutzt werden (s. 2)). Im allgemeinen sind die Möglichkeiten der Sprache C++, z.b. durch konstante Objekte, Inline-Deklarationen und Schablonen, Präprozessor-Anweisungen vorzuziehen. 2) Eingebundene Dateien können selbst wieder include-anweisungen beinhalten. Wegen der häufig tief verschachtelten Struktur von eingebundenen Dateien kann es daher zu dem unerwünschten Effekt kommen, daß eine Header-Datei mehrfach in ein Quellprogramm eingebunden wird. Um dem vorzubeugen, können konditionale Präprozessor-Anweisungen verwendet werden: #ifndef IOSTREAM.H #define IOSTREAM.H II Hier der Inhalt von iostream.h #endif Diese konditionale Anweisung wird als wahr ausgewertet, falls der hinter #ifndef folgende Name noch nicht definiert worden ist. In diesem Fall werden alle folgenden Zeilen bis zum #endif eingebunden; im anderen Fall werden alle Zeilen bis zum #endif ignoriert. Wird demnach (im obigen Beispiel) die Header-Datei iostream.h nochmals per verschachtelter #include-anweisung eingebunden, wird die #ifndef-anweisung als falsch bewertet und das nochmalige Einbinden vom Präprozessor unterdrückt. Ähnliches, jedoch mit umgekehrter Semantik, bewirkt die #ifdef Anweisung. Sie wird als wahr bewertet, falls der darauf folgende Name bereits definiert ist: hfdef UNIX II Unix-spezifischer Code #endif hfdef MSDOS II MS-DOS-spezifischer Code #endif

15 Anhang 363 Beide vorgestellten konditionalen Anweisungen können mit #eise kombiniert werden: Ufdef UNIX II Unix-spezifischer Code 4telse II MS-DOS-spezifischer Code 4tendif Falls der Name UNIX bereits defmiert worden ist (wahr), W'ird der Unixspezifische Code eingebunden, andernfalls der MS-DOS-spezifische Code. 3) C++ besitzt einen vordefinierten Namen cplusplus (zwei Unterstriche am Anfang). Die Verwendung dieses Namens (in Kombination mit einer konditionalen Präprozessor-Anweisung) ist dann sinnvoll, wenn C-Code und C++-Code vermischt werden soll bzw. vorher nicht feststeht, ob die Quelldatei mit dem C- oder dem C++-Compiler übersetzt werden wird: 4tifdef 4telse 4tendif I* *I cplusplus -extern drucke (int, int); extern drucke( ); Bewirkt die korrekte extern-deklaration unabhängig von der Verwendung des C- oder des C++-Compilers Der Präprozessor (häufig cpp = C-Präprozessor genannt), welcher diese Präprozessor-Anweisungen interpretiert, ist oft eng an die Sprache C gekoppelt. Einige Implementierungen von C++-Compilem benutzen sogar einfach den unterliegenden C-Präprozessor. Dies ist auch der Grund dafür, daß der Ein-Zeilen-Kommentar mittels// in manchen Implementierungen von C++ nicht erkannt wird (Zur Erinnerung: Die Kommentar-Zeichen sind auch Präprozessor-Anweisungen). Deshalb ist es am sichersten, die C-Notation für Kommentare zu verwenden, falls sie in einer Zeile mit einer Präprozessor Anweisung vorkommen: 4tifdef UNIX 4telse 4tendif I* I* Unix oder MS-DOS? *I Unix-spezifischer Code *I I* MS-DOS-spezifischer Code *I

16 364 Anhan~ A.S Einbinden von C-Funktionen in C++ In einem C++-Programm können auch C-Funktionen verwendet werden. Hierzu muß dem Compiler der Hinweis gegeben werden, daß es sich um eine extern definierte C-Funktion handelt. Beispiele: extern "C" extern "C" int vsprintf(char*, const char*, va_list); system (char*); extern "C" char* malloc(size_t); Die Bezeichnung "C" weist die so deklarierte Funktion als C-Funktion aus. A.9 Unterschiede der Version 2.0 zur Version 1.2 Generell fallen die Unterschiede in zwei Kategorien: 1) Änderungen in der Semantik der Version 1.2, die zu Inkompatibilitäten führen können. Hierunter fallen z.b. die Initialisierung und Zuweisung von Klassenobjekten (früher bitweise und in Version 2.0 memberweise) und die unterschiedliche Behandlung von überladenen Funktionen (z.b. früher mit Schlüsselwort overload und in Version 2.0 ohne). 2) Erweiterungen der Sprache wie z.b. mehrfache Vererbung, die zusätzliche Schutzebene protected, virtuelle Basisklassen, das Überladen der Operatoren new und delete und konstante sowie statische Member Funktionen. A.9.1 Änderungen der Semantik von Version 1.2 Das Verhalten folgender Sprachmittel und Konzepte hat sich in Version 2.0 gegenüber Version 1.2 geändert: Das Schlüsselwort overload braucht zum Überladen von Funktionen nicht mehr verwendet zu werden.

17 Anhang 365 Literale Konstanten wie z.b. 'a' werden nun als char-typ gewertet und nicht mehr als int. Gleichzeitig ist der Ausgabe-Operator < < jetzt in der Lage, literale Konstanten direkt als char auszugeben und nicht mehr nur die Integer-Repräsentation. Klassenobjekte werden nicht mehr bitweise, sondern memberweise kopiert. Der Argumentenvergleich unterscheidet in Version 2.0 auch zwischen konstanten und nicht-konstanten Zeiger- und Referenz Argumenten. Ebenso wird zwischen den "kleinen" Integer-Typen und int sowie zwischenfloat und double unterschieden. Eine Funktion kann nicht mehr verwendet werden, bevor sie deklariert worden ist (In Version 1.2 wurde eine Warnung generiert; möglich war es trotzdem). Anonyme Unions, welche auf Dateiebene definiert sind, müssen nun als statisch deklariert werden. Die Initialisierung von Default-Argumenten kann nur einmal spezifiziert werden. Variablen auf Dateiebene müssen in Version 2.0 nicht mehr mittels konstanter Ausdrücke initialisiert werden (in Version 1.2 mußte der konstante Ausdruck zur Kompilierzeit ausgewertet werden können; dies entfällt in Version 2.0). Operator-Funktionen als Member von Klassen unterliegen in Version 2.0 den evtl. vorhandenen verschiedenen Zugriffsrechten. A.9.2 Nicht unterstützte Konzepte in Version 1.2 Folgende Konzepte und Sprachmittel sind der Version 2.0 hinzugefügt worden und werden nicht von Version 1.2 unterstützt: Mehrfache Vererbung, Pure virtuelle Funktionen, Virtuelle Basisklassen, Typensicheres Binden,

18 366 Anhang Überladen der Operatoren new und delete sowohl auf Dateiebene als auch bei individuellen Klassen, Überladen des Kommaoperators und des -> Operators, Konstante Member-Funktionen, Statische Member-Funktionen, Explizite Initialisierung statischer Member, Explizite Speicherplazierung von Objekten mittels des Operators new, Explizites Löschen von Klassenobjekten durch direkten Aufruf des Klassen-Destruktors. A.lO Unterschiede der Version 3.0 zur Version 2.0 Die Version 3.0 bietet zusätzlich die Möglichkeit der Definition von Funktions- und Klassenschablonen an. Ferner können jetzt die Inkrement- und Dekrementoperatoren als Postfix- und Präfix-Operatoren im Kontext von Klassen definiert werden. Die wichtigsten weiteren Unterschiede sind: - Ab Version 3.0 ist es zusätzlich möglich, Basisklassen als protected Basisklassen zu verwenden. In Version 2.0 ist nur die private oder öffentliche Ableitung erlaubt: class landfahrzeug : protected fahrzeug I* Alle public-member der Klasse fahrzeug werden protected-member der Klasse landfahrzeug *I } ; - Vererbung purer virtueller Funktionen: In Version 2.0 muß eine abgeleitete Klasse, deren Basisklasse eine pure virtuelle Funktion definiert, eine Funktionsdefinition angeben. Version 3.0 hebt diese Einschränkung auf. Falls keine Funktionsdefinition

19 Anhang 367 angegeben wird, erbt die abgeleitete Klasse die pure virtuelle Funktion. In diesem Fall dürfen keine Objekte der abgeleiteten Klasse definiert werden (abstrakte Klasse). Typen können jetzt innerhalb einer Klasse definiert werden und besitzen auch nur innerhalb dieser Klasse Gültigkeit. In Version 2.0 ist eine Typdefinition innerhalb einer Klasse in dem gleichen Gültigkeitsbereich gültig wie die Klasse selbst. Beispiele: class fahrzeug { } ; public: enum Art {Land, Wasser, Luft, Raum}; class landfahrzeug : public fahrzeug { } ; public: Art mein_typ; enum Art {PKW, LKW, Bus, Bahn}; /* *I /* *I Fehler in Version 2.0, da Redefinition des Typs Art. OK in Version 3.0. Für abgeleitete Klassen ist jetzt diese Defintion des Typs Art gültig. OK in Version 2.0, da Typ Art global definiert ist. fahrzeug Art dein_typ; /* *I Fehler in Version 3.0, da der Typ nur in der Klasse fahrzeug bzw. landfahrzeug Gueltigkeit hat. Fehler in Version 2.0; fehlerhafte Syntax. OK in Version 3.0, da Scope-Operator angewendet wird.

20 368 Anhang - Die Aufrufsyntax für den Destruktor wurde geändert: Zeiger-> X:: -X(); I* *I Sowohl in Version 2.0 als auch Version 3.0 erlaubt. Zeiger-> -X(); II Nur in Version 3.0 erlaubt - Beim Löschen von Vektoren von Klassen mittels des Operators delete muß nicht mehr die Dimension des Vektors angegeben werden; es genügt die Angabe von leeren eckigen Klammem: X *Zeiger = new X[S]; delete (5] Zeiger; I* Sowohl in Version 2.0 als auch in Version 3.0 erlaubt *I X *Zeiger = new X(S]; delete [ ] Zeiger; II Nur in Version 3.0 erlaubt - Existieren überladene Funktionen mit mehreren Parametern, so wird bei Aufruf die Funktion gewählt, die eindeutig besser bzgl. mindestens eines Arguments im Vergleich zu den anderen Funktionen zugeordnet werden kann. In Version 2.0 wird dagegen nur gefordert, daß die Zuordnung genauso gut oder besser sein muß. - Um Klassenschablonen zu unterstützen, ist der Aufruf von Konstruktaren und Destruktoren jetzt auch für elementare Typen erlaubt: double d(29.1); II Entspricht: double d = 29.1; double *zd zd ->-double(); = new double(); /* zd zeigt auf einen nicht definierten double-wert *I

21 Anhang Der Name eines formalen Parameters einer Funktion ist sofort nach seiner Deklaration gültig: double d = 4.1; f( int d, int e = d) {... } /* In Version 2.0 entspricht dies f(int d, int e = ::d) {... } In Version 3.0 bezieht sich der Name d auf den ersten formalen Parameter *I Obige Funktionsdefmition ist daher in Version 3.0 nicht erlaubt, da es nicht zulässig ist, lokale Variablen als voreingestellte Werte (Oe faultwerte) zu verwenden.

22 70 REGISTER cplusplus 363 new handler 94,95 #include 8-10, 94, 102, , 238, 252, 264, 265, c.cpp.cxx abgeleitete Klassen abgeleitete Typen Ableiten von Klassen abort abstrakte Basisklasse abstrakte Datentypen abstrakte Superklasse abstrakter Typname access control ADA Adresse aktueller Parameter Alias 2, 123, 128, , 190, 191, 193, , , 207, 210, 211, 240, 246,252,262,269,366 23, 24, 30-32, 40, 51, , 175, 176, 181, 182, 186, 187, 190,205, 207, , ,205,207, 367 5, , , , 14, 20, 30, 32, 33, 34, 36, 48, 57, 87, 88, 91-94, 99, 108, 130, 139, 147, 149, , 169, 172, 173, 238, 245, 252, , 83, 85-88, 99, 101, , 149, 151, 185, 227, , 237, 239, , 33, 92

23 Register ambiguity anonyme Union ANSIC ANSIC++ Anweisung append arge Argument argv Anweisungsfolge Ausdrucks-Anweisungen Auswahl-Anweisungen Elementare Anweisungen Iterations-Anweisungen Sprung-Anweisungen Tabelle der Anweisungen zusammengesetzte Anweisung Arithmetische Operatoren Array ASCll asm assoziativ atexit Aufzählung Ausdruck Ausdrucks-Anweisungen Ausgabe bedingter Ausdruck cerr , 172, 365 2, 5, 12, 27, 29, 39, 45, 83, 112, 172, 241, 266 5,241,266,267,354,355, , 9-11, 15, 18, 19, 21, 60, 63-66, 69-79, 86,90, 106,107,145,147,151,206,228, 249, 253, 268, 275, 352, , , 15, 74, 80, 81, ,64 63,69 11, 63, 64, 70 63, 73 63, , ,265,266 18, 82, 84, 94, , 106, 127, 128, 165,168,185,194,198,216,229,237, 257,365, , 265, , 10, 20, 34, 35, 88-90, ,259,272 16, 20, 21, , 52,54,274, , 48-50, 92, 261, , 38, 51, 55-57, 60, 63, 64, 69, 70-72, 74-76, 78, 79, 90-93, 130, 172, 216, 226, 244, , 349, , 64 2, 9-11, 43, 55, 79, 95, 109, 124, , , 266, 353, 359, 361, , 95, 158, 219, 257, 264,

24 372 Register cout form printf Ausgabestrom Formatierte Ausgabe Tabelle der Ausdrücke Unformatierte Ein-/Ausgabe 8, 9, 11, 72, 73, 75, 76, 78, 83, 85, 86, 88, 89, 95, 103, , 115, 116, 124, 135, 154, 179, 192, , 251,253, ,265, , 257, , 101, ,256, ,257 Ausnahme Auswahl-Anweisungen Auswertungsreihenfolge auto 2, 16,267,269,270,279 63,69 55, 61 16, 19, 20, 352 backslash bad Basisklasse virtuelle Basisklasse bedingter Ausdruck Bezeichner lnitialisierung von Bezeichnern 11, 43, 45, 46, , 170, , ,202, , 249, 269, 279, , 207, , 279, 364, , 11, 15-19, 21-26, 30, 32, 40, 41, 46, 48, 49, 51, 67, 75, 82, 87, 160, 171, 172, 190, 230, 235 2, 21 BezeichnerEste 23, 30 Intialisierung von BezeichnerEsten 23 Binden Bindung dynamisches Binden typensicheres Binden externe Bindung interne Bindung 5, 108, 111, 185, 186, 360, 362, , 186 5, , 21, , bitweise logische Operatoren bitweises exklusives Oder bitweises inklusives Oder bitweises Und blank 56, 59,262,274,351 56, 59,274,351 56, 59,262,351 56, 59, , 254, 258

25 Register 373 Block boo1ean boo1esche Operatoren break 10, 11, 19, 65-69, 73, 75, 92, 154, , 349, , 57, , 63, 71-73, 76, 78, 90, 201, 266, 352, 355 c cc C++ call-by-reference cal1-by-value 2, 4-6, 8-13, 15, 20, 24, 42, 43, 46, 50, 57, 75, 82, 83, 101, 111, 112, 116, 117, 119, 120, 128, 172, 266, 271, , 363 9, 110, 111, 360, , 8-11, 13, 15-21, 24, 26, 29, 34, 37, 39, 41-43, 46, 50, 52, 53, 56, 57, 59, 60, 63, 64, 75, 77, 80-85, 88, 92, 96, , 108, , 117, 120, 121, , 128, 129, 132, 145, 149, 165, 169, 174, 175, 179, 183, 186, 187, 189, 194, 204, 213, 215, 216, , 233, 234, 240, 241, 246, 251, 257,260,266,267,271,354,355,359, , 89, 127, 149, 155 case cast catch cerr char char* character ehr case-label Tabelle der besonderen Zeichen white space characters Zeichenkonstante 16, 71-73, 185, 201, 265, 352, , 30, 350, 356, , , , 95, 158, 219, 257, 264, , 17, 21, 24-27, 29, 31-33, 42, 72, 73, 92, 93, 95, 153, 172, , 259, 271, 272, 352, , 40, 45, 47, 86, 98, 99, 101, 102, 108, ,154,156,166,238,239,245, 246, 249, 251, , 258, 265, 272, , 44,252,254,255,271,358, ,255,361 41, 42-44,

26 374 ein class clear clog close CodeReview Compiler const continue coredumped cout cpp ctype.h cin.get class body dass derivation dass head cout.precision cout.put Register 8,9, 11,251,254,255,257,259,260,263, 274, , 16, 123, , 132, , , , 152, 153, , 167, 171, , , 184, , , 195, 197, 198, , 205, 207, , 214, , 222, 223, 226, 228, 230, 231, , , 349, 350, 352, 357, 358, 366, , 6, 9, 13-15, 17, 18, 20, 21, 26, 34, 39, 46, 48, 50, 69, 73, 84-87, 89, 90, 96, 99, 101, 103, , 111, 112, 115, 120, 126, 130, 133, 138, 148, 150, 170, 173, 185, 186, 190, 192, 202, 213, , 227, 231, 232, 234,240,243,246,255,267,271,352,353, , 363, , 46-48, 86, 92, 101, 102, , 147, 150, 151, 155, 156, 166, , 221, 222, 240, 256, 352, 354, 357, 358, , 63, 75, 77,352, , 9, 11,7~ 73,75,7~ 78, 83, 85, 8~ 88, 89, 95, 103, , 115, 116, 124, 135, 154, 179, 192, , 251, 253, , 265,

27 Register 375 dangling reference problern Dateioperationen append close Datei dec default File filebuf open Default-Konstruktor define Definition Deklaration Dekrement -Operator delete Derererenzieren Destruktor Definition von Bezeichnerlisten Redefinition point of declaration Redeklaration Vorwärtsdeklaration virtueller Destruktor , , 10, 17-19, 21, 27, 38, 44, 69, 79, 93, 95, 98, 102, , 129, 224, 252, 255, , , 365, , , 264, ,259,272 16, 72, 73, 95, 98, 145, 146, 148, 151, 168, 210,217,266,269,270,352,354,365, ,146,148,168, , 362 2, 8, 10, 13-15, 17, 18, 21-23, 25, 26, 30, 31, 35, 36, 38, 47, 48, 50, 61, 64, 66-69, 80-83, 92, 101, 103, 104, , 114, 115,117, ,130,132,133, , , , 152, , , 168, 170, 172, 176, 181, 188, 194, 196, 201, 203, 205, , 219,221, 223, 224, 228, , , 260, 269, 279, 349, 352, 361, 366, 367, , 30 18, 104, 205, 367 2, 9, 10, 17-21, 24, 31-33, 40, 63, 64, 66, 70, 73, 75, 82, 84, 92-94, 98, 99, 101, 104, , 127, 133, 135, 137, 138, 149, 159, 160, , 172, 194, 197, 199,207, 211, 215, 217, 220, 224, 226, , 240, 242, 247,253,270,352,355,362,363,369 18, , 99, 104, , , 226, 227, 350, 366 5, 16, 62, 92, 93, 95-97, 130, , 168, 169, 206, 207, 216, , 241, 242, 246,350,352,357,364,366,368 33, 39, 61, 62, 100, 130, 134, , 79, 128, 136, 138, , 162, 163, , 193, 195, 197, 206, 207, 224, 241, 242,245,278,366, ,207

28 376 dezimal Dimension dimensionslos do-while double dynamisches Binden 41, 42, , 35, 38, 46, 88-90, 92, 96, 169, , 38, 46 16, 63, 76, 77, 352, 354 Register 16, 24, 26-30, 44, 52, 53, 55, 59, 231, 232, 251,258,272,352,365, , 186 EBCDIC Einbinden Einbinden von C-Funktionen , 360, 362, einfache Vererbungshierarchie Eingabe ein Eingabestrom Elementare Anweisungen Elementare Typen Ellipse eise Ende der Textkonstanten (Strings) Endemarkierung endif endl Endlosschleife enum eof EOF enumeration Ergebnisrückgabe 186 9, 11, 251, 252, , 259, 260, 263, 271, 274, 277, 358, 361 8, 9, 11,251,254,255,257,259,260,263, 274, , , 63, 64, 70 24,26, 27,29, 30,41, 50,51, 58, 60, 74, 124, , 102, , 60, 63, 69-71, 81, 125, 137, 158, 185, 202,219,264,266,352,354,363 45,46 45, 46, , , 75, 79 16, 48-51, 200, 249, 352, , 172, 230, , , 263 8, 90, 91, 127, 149, 230, 253

29 Register Ergebnistyp Escape-Sequenz Exception exit exor Explizite Typkonvertierung extern externe Bindung , 31, 33, 78-81, 84, 90, 91, 94, 99, 100, 104, 108, 109, 147, 156, 182, 204, 205, 213, 224,226,230,234,237, , ,94,158,219,264,266, , 32, 39, 40, 48, 85, 89, 105, 176, 184, 201, 252, , 17, 19, 21, 33, 38, 47, 98, , , 127, 141, 237, 352, 363, , 135 fail Fakultätsfunktion false Fehlerausgabestrom File filebuf float float.h flüchtige Objekte flush for form formaler Parameter Formatierte Ausgabe form formfeed , 90, , 57' 58, 255, , , 17, 21, 24, 26, 27, 29-32, 34, 39, 44, 59,251,257,258,272,352,358, , , 74-78, 88, 89, 91, 96, 100, 103, 158, 201,203,246,352, , 257' , 31, 39, 80, 82, 83, 85-87, 89, 91, 97, 98, 101, 103, 106, 112, 185, 231, 239, 241, 253,269,352, , 257'

30 378 Register Freispeicher 92,93,97, 223,225 Friend fstream fstream.h 16, 132, 135, 147, 157, , 178, , 204, , 218, , , , 261, ,264,265 Funktion 2, 4, 5, 8-10, 12-19, 21, 22, 29-31, 33, 35, 37-39, 57, 58, 61, 62, 64, 67, 69, , 114, 115, , , 147, 149, , 170, 171, , , 190; 191, , , , , 251, 253, , ,272, 273, , 349, 352, 355, Ausführungsfunktion 136 Funktionen als Parameter 99 Funktionsdefinition 8, 10, 13, 15, 18, 80-83, 101, 108, 143, 234,239,366,369 Funktionsdeklaration 31, 82, 84, 94, 98, 99, 101, 111, 234, 237 Funktionsprototyp 82, 84, 99, 234, 270 Funktionsrumpf 10, 17, 80, 81, 83, 85, 107, 135, 138, 166, 233,234 Funktionsschablone 233, 234, , Hilfsfunktion 136 Inline-Funktion 69, 106, 107, 135, 143, 160 konstante Memberfunktion 5, 137, 138, 366 Member-Funktion 5, , , , 147, 157, 160, 170, 171, , 190, 191, 202, 204, , 230, , 253, , 264,277,364,366 pure virtuelle Funktion 205, Schablonenfunktion 234, 237, 238, 247 statische Member-Funktion 5, 134, 364, 366 throw-liste einer Funktion 270 Überladen von Funktionen , 108, 138, 145, 156, 160, 229, 233, 364,368 Überladen von Funktionsschablonen 237 Verwaltungsfunktion 136 virtuelle Funktion 123, 124, 170, 184, 185, 190, 199, 200, , 230, 279 Zugriffsfunktion 122, 137 garbage collection gcount generischer Programmierstil generic style of programming get 251, 255, 265

31 Register getline good Gültigkeitsbereich goto Scope Scope-Operator 255, , , 17, 19, 22, 51, 62, 66, 69, 77, 104, 126, 129, 133, 135, 140, 142, 144, 156, 160, 171, 190,215,224,243,352,367 17, 133, , 92, 127, 129, 142, 190, 191, 203, 215, , 349, ,63, 73, 77, 78,352,355 handle handler header hex hexadezimal Hexadezimaldarstellung Hierarchie Hilfsfunktion , 44, 79, 98, 110, 111, 224, ' 98, , , 97, , , , 191, 194, 205, 207, 209, 210, 277, ldentifier if ifdef if-else ifndef ifstream Implizite Typkonvertierung include Indexgrenzen Indexoperator 15,354,355,357,358 16, 49, 58, 60, 63, 69-71, 73, 76-78, 81, 115, 125, 137, 155, 158, 206, 219, 223, 253, , 267, 268, 275, 351, 352, ,363 63, 69, 71, 185, , , 32, 39, 49, 50, 52, 53, 79, 84, 85, 105,227,231,239,240,269 6, 9, 10, 94, 102, , 238, 252, 264, 265, , 89, 219,

32 380 Register Information Hiding Inheritance Vererbung 119, 120, 123, 124, 127, 157, 169, 174, 177, , 123, 147, 156, 161, 174, 175, 180, 182, 183, , 195, , 222, 224, 230, Initialisierung 2, 5, 10, 14, 15, 17, 18, 21-23, 33, 35, 38, 45-47, 68, 69, 73, 74, 85, 88, 93, 97, 100, 114, 130, 133, 136, 145, 146, , 155, , 170, 171, , 207,210, , 249, 278, 357, memberweise Initialisierung 5, , 155, 166, , 221, 364, 365 Initialisierung von Bezeichnem 2, 21 Initialisierung von Bezeichnerlisten 23 Initialisierung von Klassen 5, 124, 130, 133, 136, 145, 146, , 155, , 170, 171, , 207, 210, , 278, 364, 366 Inkrement Inkrement-Operator Inline Inline-Funktionen int Integer Integer-Konstante interne Bindung iomanip.h 53-55, 86, 362 5, 53, 54, 226, 350, , 107, 108, 136,219,237, , 106, 107, 135, 143, 160 8, 10, 13-18, 20-29, 31-36, 38-42, 47-49, 51-55, 57-59, 61, 64-70, 73-75, 79, 81-86, 88, 89, 91-93, 95-96, , ,108, ,125,127, , , , 146, 148, 149, , , 161, 167, , 174, 178, 179, 182, 192, 193,201, 213, , , 233, , , 248,.249, , 264, 265, 270,275,276,352,353,361,364,365,369 8, 10, 13-15, 24, 25, 29-31, 34-36, 40-44, 48-50, 57, 59, 72, 79, 81, 84, 90, 97, 103, 129, 149, 167, , 220, , 233, 243, 257, 258, , 275,278,358,365 41,42,44,48,

33 Register 381 ios iostream isalnum isalpha iscntrl isdigit islower isspace istream istrstream isupper ios::app ios::beg ios::cur ios::end ios::in ios::out iostream.h , , , 264, ,259,260, , 97, 102, , 251, 252, 260, 264, 265, , 259, 260, Iterations-Anweisungen Iterationsfunktion 63, Klasse abgeleitete Klassen abstrakte Basisklasse Basisklasse dass dass body dass derivation dass head 2, 5, 17, 31, 33, 51, 62, 74, 79, 92, 93, 116, 117, , , , , , , , 233, , , , , 269, , , 123, 128, , 190, 191, 193, , , 207, 210, 211, 240, 246,252,262,269, , 205, 207' 367 5, 170, , , 202, , 249, 269, 279, , , 152, 153, , 167, 171, , , 184, , , 195, 197, 198, , 205, 207, ,214, , 222, 223, 226, 228, 230, 231, , , 349, 350, 352, 357, 358, 366,

34 382 Register Initialisierung von Klassen 5, 124, 130, 133, 136, 145, 146, , 155, ,170,171, ,207, 210, , 278, 364, 366 Klassen als Member von Klassen 162, 193 Klassendefinition 122, 123, , 142, 170, 176, 219, 228, Klassendeklaration Klassenhierarchie Klassenkonzept Klassenkopf Klassenrumpf Klassenschablone , 246, 249, 279 Konstruktoren/Destruktoren für abgeleitete Klassen 17, 33,92, 135,136,162 5, 186, 191, 194, 277, 279 5, 117, , 159, , , 135, 140, , 241, 243, 244, , 253, 279, 366, 368 Konstruktoren/Destruktoren ftir Member-Klassen 162, 193 Löschen von Klassen Member-Klasse namenlose Klasse 128, 194 Oberklasse 176 Öffentliche Basisklasse 181' 182 private Basisklasse Schablonenklasse Superklasse verschachtelte Klassen 142 virtuelle Basisklasse 5, 207, , 279, 364, 365 Zeiger auf Klassen 31, 129, 185 Zeiger auf Klassen-Member ,155,156,169,207,224,225,366, , 166, 194, ,247, Kommaoperator Kommentar Blockkommentar Kommentarzeichen Komplement konditionale Präprozessor-Anweisung konditionaler Operator Konstante const Integer-Konstante konstante Member-Funktion konstanter Zeiger reelle Konstante Textkonstante Zeichenkonstante 56, 60, 61,217,366 2, 10, 11, 13-15, , , 153, 156, , , 5, 11, 20, 24, 31, 34-38, 41, 44,46-49, 69, 71, 72, 86, 87, 89, 97, 98, 108, 109, 114, 115, 137, 138, 162, 245, 252, , 354, 358, 361, 365, , 46-48, 86, 92, 101, 102, , 147, 150, 151, 155, 156, 166, , 221, 222, 240,256,352,354,357,361,364 41,42,44,48,49 5, 137, 138, , 37,47,48, , 44 11, 20, 38, 41, 44-46, 89, 97, 98, 108, 109, 114, 115, 162, 245, 252, , 46, 365

35 Register 383 Konstruktor 24, 78, 93, 128, 136, 138, , , , 170, , 206, 207, , ,241, 242, 244, 245,261,277,278,368 Default-Konstruktor 145, 146, 148, 168, 210 Konstruktor für konstantes Klassenobjekt 138 Member-Konstruktor 163, 164, 166 Konstruktoren/Destruktoren für abgeleitete Klassen 193 Konstruktoren/Destruktoren für Member-Klassen 162 Konvertierung 24, 27-30, 32, 39, 40, 48-50, 52, 53, 79, 83-85, 89, 103, 105, 106, 136, 176, , 201, 221, , , 239,240,252,257,263,269,271 Implizite Typkonvertierung 27-29, 32, 39, 49, 50, 52, 53, 79, 84, 85, 105,227,231,239,240,269 Explizite Typkonvertienmg 29, 32, 39, 40, 48, 85, 89, 105, 176, 184, 201,252,271 selbstdefinierte Typkonvertierung 105, 227, 229, 231 Typkonvertierung 24, 27-29, 32, 39, 40, 48-50, 52, 53, 79, 83-85, 89, 103, 105, 106, 176, 184, 201, 227,229,231,239,240,252,269,271 Iabel 71-73, 77, 354 ~ 202 Laufzeit 5, 19, 21, 85, 92, 106, 107, 111, 119, 173, 202, 207, 223, 267 Leerzeichen 14, 98, 254 limits.h 27 links-assoziativ 54, 349 Uterale Iitera! Löschen von Klassen logisches Nicht logisches Oder logisches Und long 42, , ,155,156,169,207,224,225,366,368 58, , 58, , 58, , 25-28, 41, 42, 44, 98, 172, 226, 251, 258,260,262,272,352

36 384 Register long double lvalue 26, 27,44 87, 138, 151, main Manipulatoren Mehrdeutigkeit mehrfache Vererbung mehrfache Vererbungshierarchie 8, 10, 18, 67, 94, 100, , 203, 264, ,256, ,192,209,212,232,240 5, , 195, , 364, Member 5, 17, 33, 62, , , 153, Member-Funktion , , , 190, 191, , 198, 204, 209, 210, 212, 221, 224, 246, 248, 251, , 349, 350, 365, 366 Klassen als Member von Klassen 162, 193 Konstruktoren/Destruktoren für Member-Klassen 162, 193 5, , , , 147, 148, 157, 160, 170, 171, , 190, 191, 202, 204, , 230, , 253, , 264, 277, 364, 366 Member-Klasse Member-Konstruktor memberweise Initialisiemng memberweise Zuweisung Modulooperator Musterlösungen , 166, 194, , 164, 166 5, , 166, , 221,364, 365 5, 166, 221, , 56, 350, 351 1, 3, 6, 7, 271 namenlose Member namenlose Klasse native compiler , new newline new.h new _handler 5, 16, 32, 62, 92-97, 130, 150, , 206, 217, , 241, 242, , 350, 352, 357, 364, 366, , 94 94,95 254, 256, 259

37 Register Nil.. NULL 34 34,93, 118,155,176,206,245,246, Oberklasse Objektcode Objektorientiertes Programmieren oct öffentlich Öffentliche Basisklasse ofstream oktal Oktaldarstellung , 5, 102, 121, 123, 174, 185, 206, ,259,272 5, , 133, 147, 159, 177, , 185, 186, 190, 196, 211, 212, 251, , ,261,262,264, , 258, 259, open Operator Arithmetische Operatoren Bitweise logische Operatoren boolesche Operatoren Dekrement-Operator Inkrement -Operator Kommaoperator konditionaler Operator Modulooperator Pfeiloperator Postfix -Operator Präfix-Operator Punktoperator Scope-Operator Tabelle der Operatoren ~<:märer Opemtor Uberladen von Opemtoren unärer Operator Vergleichsoperatoren Zeigerzugriffsoperator 261,264,265 2, 5, 8, 10-12, 16, 24, 26, 28, 30,.32, 48, 49, 51-54, 56-63, 67, 92, 93, 95, 96, , 103, 114, 115, 124, 127, 129, 130, 142, 151, 156, , 166, 170, 173, 190, 191, 203, , , , , 274, 276, 278, 349, 352, , ,59, 262,274, ,226,227,350,366 5, 53, 54,226,350,366 56, 60, 61, 217, ,56, 350,351 62, 115, 156, ,53, 54,226,356,357,366 30, 53,226,366 62, 114, 127' , 92, 127, 129, 142, 190, 191,203, 215, 225, , 62, , 60, 217 2, 5, 51, 52, 92, 115, 124, 151, 166, 213, , 230, 232, 252, 253, 263, 278, 364, , 51-54, 58, 156, 213, 349, , 57, , 218, 222,223

38 386 Register Zuweisungsoperatoren Operator Overloading ostream ostrstream Overloading 8, 10, 54, 56-58, 63, 98, 166, 170, 217, 222, 278, 349 5, , , 259, 260, , 103,213,237,364 Parameter aktueller Parameter call-by-reference call-by-value formaler Parameter Parametrisierte Typen Funktionen als Parameter Parameterliste Parametertyp Vektoren als Parameter Parameterübergabe call-by-reference call-by-value Pascal Pfeiloperator point of declaration Polymorphismus pop Portierung 8, 10, 13, 15, 18, 19, 31, 33, 37, 39, 40, 61, 80-89, 91,95-106, 108, 109, 112, 138, ' 149, 151, 152, 155, 156, 159, 160, , 168, 185, , 210,213, ,224,226,230,231, , 247,253,257,258,260,261,265,266,269, 275, 277, 352, 361, 368, , 83, 85-88, 99, 101, , 149, 151, 185, 227, , 237, 239, ' 89, 127' 149, , 31, 39, 80, 82, 83, 85-87, 89, 91, 97, 98, 101, 103, 106, 112, 185, 231, 239, 241, 253,269,352, , 39, 61, 81, 98, 100, 138, 145, 163, 164, 194,216,227,230,235 18, 39, 83, 99,160,238,275 37, , 83, 87-89, 97, 101, , 89, 127, 149, 155 2,~ 6, 8, 11, 34, 38, 50, 52,57, 11~ 11~ 120, , 115, 156, , , 154, , 248, 267, ,41 Postfix Präfix Postfixoperator Präfixoperator 30,53, 54,226,227,356,357,366 30,53, 54,226,356,357,366 30,44,46,53,226,227,366 30, 53,226,366

39 Register Präprozessor Präprozessor-Anweisung precision printf Priorität private private Basisklasse Programmierstil generischer Programmierstil Programmstruktur protected Prototyp public Punktoperator pur push put putback Funktionsprototyp pure virtuelle Funktion 9, 10, 13, , 101, , 31, 54, 58, 62, 100, 130,217,274, , 16, , , 139, 141, 142, , 152, 154, , 164, 167, 171, 173, , 186, 188, 189, 192, 193, 195, 205, 206, , 214, 216, , 222,226, 228, 230, 232, 242, 246, 252,352, ,102,182,185, , 124, 128, 132, 136, 171, 179, 180, 183, 186,190,216,352,364,366 82,84,99,234,270 82,84,99,234,270 16, , , , 147, 152, 153, 157, 159, 161, 162, 164, 167, 169, 171, , 178, 179, 181, 182, 184, 186, 188, 189, , 195, 197, 198, , 205,207, , 214, 216, , 222, 223, 226, 228, 230, 231, 241, 242,244,245,248,249,251,252,352,366, , 114, 127' , , , 154, 241, 242, 245, 246,248, 267, 268, 270, ' 256, 262, Quellcode 16, 108, 122,

40 388 Register rdbuf Rechnertyp rechts-assoziativ Redefinition Redeklaration reelle Konstanten reference Referenz register reservierte Wörter Tabelle der reservierten Wörter return rvalue ,42, 59 54, , 104, 205, , 99, 104, , , , 47, 48, 61, 86, 87, 92, 173, 184, 185, 202, 205, , , 19, 20, 127, , 21, , 10, 16, 63, 78, 79, 81, 84, 90, 91, 96, 100, 102, 106, 107, 125, , 141, 147, 149, 153, 158, 167, 214, 215, 219, , 226, 230,231,233,234,236,238,241,243,245, 246,248,252,253,267,268,352, Schablone Schlüsselwort Schleifenbedingung Schnittstelle Funktionsschablone Klassenschablone Schablonenfunktion Schablonenklasse 2, 6, , 253, 279, 362, 366, , 234, , , 241, 243, 244, , 253, 279, 366, , , ,247,248 10, 16, 17, 25, 40, 46, 47, 68, 73, 81, 86, 103, 107, 109, 113, 124, , 135, 138, 179,182,202,204,205,210,212,213,234, 242,268,269,352, , 119, 177, 181 Scope seek_dir seekg seekp Scope-Operator 17, 133, , 92, 127, 129, 142, 190, 191, 203, 215, 225, ,

41 Register 389 Seiteneffekt selbstdefinierte Typkonvertierung sequence point set_new _handler set_tenninate set_unexpected setf setw 56, 86, 155, , 227, 229, , shiften short Signatur signed Simula size_t sizeof shiften nach links shiften nach rechts 59,356 59,350 59,350 16, 25-27, 162, , 172, 174, 193, 194, , 251, 272, ,104,138,182,204,205,216 16,24, 25,29, 59,172,173,352 5, 11, 34, 57, 83 93, , , 26, 27, 32, 34, 37,40,42,45, 61,62,96, 156,272,349,352,356 Speicherklasse Speicherplatz delete Freispeicher garbage collection new Sprung-Anweisungen Stackverwaltung Stapel new.h new_handler Speicherplatzmangel 19-22, 69, , 18, 22, 25, 26, 35, 68, 83, 87,91-94, 96, 126, 133, 153, 156, 169, 172, 173, 209, 211,225 5, 16, 62, 92, 93, 95-97, 130, , 168, 169, 206, 207, 216, ,241,242, 246,350,352,357,364,366,368 92, 93, 97,223, , 16, 32, 62, 92-97, 130, 150, , 206, 217, ,241,242, , 350,352,357,364,366,368 93,94 94,95 94, 95 63, , 154, , 248, 249, 253, 267,276

42 390 Register starke Typüberprüfung static statische Member-Funktion stdarg.h stddef.h stdlib.h stdio.h strcmp strcpy stream.h String(s) string.h Ende des Strings strong type checking strstream.h struct structure Superklasse switch 84, , 19, 21, 35, 68, 69, 108, 111, , 147,152,156,173,237,240,248,352 5, 134, 364, ,44,93, , , , 162, , 252, , 38, 45, 46, 238, 245, , 352, , 113, 115, 128, 176, 276, 352 2, 31, 51, 62, , 127, 128, 162, 169, 170,172,182,252,261, , 63, 71-73, 76, 201, 202, 265, 352, 354 Tabelle der Anweisungen Tabelle der Ausdrücke Tabelle der besonderen Zeichen Tabelle der Operatoren Tabelle der reservierten Wörter Tabulator tellg template tabs Tabulatorzeichen 43,254, , 16, , , 253,254, 352

43 Register 391 temporäres Objekt tenninate ternärer Operator Textkonstante this 105, 151, , , 60, , 20, 38, 41, 44-46, 89, 97, 98, 108, 109, 114, 115, 162, 245, 252, ,134,139,140,156,224,226,352,357 throw throw-liste einer Funktion 16, , translation unit true try 9 50, 57,58,259,263,264 16, , 352 Typ abgeleitete Typen abstrakte Datentypen abstrakter Typname Aufzählung boolean char double Elementare Typen enum enumeration Explizite Typkonvertierung float Implizite Typkonvertierung 2, 5, 8, 10, 11, 16-18,22-34,38-42, 44-46, 48-52, 57-62, 72, 74, 78-85, 87-94,96,99-106, , 117,123, 124, 126, , 134, , , 154, 156, 157, 160, 166, 167, , , 182, , 195, 196, , 208, 210,213,215,218,219, 221, 222, 224, , , 258, 262, , 275, 276, 279, 349, 350, 356, 357, 365, 367, , 24, 30-32, 40, 51, 113 5, , 48-50, 92, 261, , 57, 58 16, 17, 21,24-27, 29, 31-33, 42, 72, 73, 92, 93, 95, 153, 172, , 259, 271, 272, 352, , 24, 26-30, 44, 52, 53, 55, 59, 231, 232, 251,258,272,352,365,368 24, 26, 27, 29, 30,41, 50,51, 58,60, 74, 124, , 48-51, 200, 249, 352, , 172, 230, , 32, 39, 40, 48, 85, 89, 105, 176, 184, 201, 252, , 17, 21, 24, 26, 27, 29-32, 34, 39, 44, 59,251,257,258,272,352,358, , 32, 39, 49, 50, 52, 53, 79, 84, 85, 105,227,231,239,240,269

44 392 Register int 8, 10, 13-18, 20-29, 31-36, 38-42, 47-49,51-55, 57-59, 61, 64-70,73-75, 79, 81-86, 88, 89, 91-93, 95-96, , , 108, , 125, 127, , , , 146, 148, 149, , , 161, 167, , 174, 178, 179, 182, 192, 193, 201, 213, , ,233, , , 248, 249, , 264, 265, 270,275,276,352,353,361,364,365,369 long 16, 25-28, 41, 42, 44, 98, 172,226,251, 258,260,262,272,352 long double 26, 27, 44 short 16, 25-27, 162, , 172, 174, 193, 194, , 251, 272, 352 Typnrunen 32, 40,41, 92, 93,96, 126,128,230,243 Typüberprüfung 5, 18, 84, 101, 111, 112, 128, 129, 170,202, 258 starke Typüberprüfung 84, 111 Verbundtyp 113 typedef 16, 17, 30, 40, 41, 100, 104, 173, 269, 270, 352 typensicheres Binden 5, 365 Typfelder 200, 206 Typkonvertierung 24, 27-29, 32, 39, 40, 48-50, 52, 53, 79, 83-85, 89, 103, 105, 106, 176, 184, 201, 227,229,231,239,240,252,269,271 Explizite Typkonvertierung 29, 32, 39, 40, 48, 85, 89, 105, 176, 184, 201, 252, 271 Implizite Typkonvertierung 27-29, 32, 39, 49, 50, 52, 53, 79, 84, 85, 105,227,231,239,240,269 Selbstdefinierte Typkonvertierung 105, 227, 229, 231 Typnrunen 32,40,41, 92, 93,96, 126,128,230,243 Typüberprüfung 5, 18, 84, 101, 111, 112, 128, 129, 170, 202, 258 starke Typüberprüfung 84, 111 Überladen 2, 5, 51, 52, 92, , 108, 115, 124, 138, 145, 151, 156, 160, 166,213, , 229,230,232,233,237,263,278,364,368 Überladen von Operatoren 2, 5, 51, 52, 92, 115, 124, 151, 166, 213, , 230, 232, 252, 253, 263, 278, 364, 366 Überladen von Funktionen , 108, 138, 145, 156, 160, 229, 233, 364, 368 Überladen von Funktionsschablonen Übersetzungseinheit 9 237

45 Register 393 Übungsaufgaben unärer Operator unexpected Unfonnatierte Ein-/Ausgabe cerr ein cout 3, 6, 7, , 51-54, 58, 156, 213, 349, , , 95, 158, 219, 257, 264, ,9, 11,251,254,255,257,259,260,263, 274,275 8, 9, 11, 72, 73, 75, 76, 78, 83, 85, 86, 88, 89, 95, 103, , 115, 116, 124, 135, 154, 179, 192, , 251,253, , 265, 274 Union UNIX unsigned anonyme Union 16, 31, 51, 62, 128, 148, 157, , 352, , 172, 365 3, 4, 6, 9, 23, 95, 110, 266, 271, 358, 359, , , 24, 25, 27-29, 42, 59, 105, 172, 173, 235,244,272,352 va_arg va_end va_list va_start Vektor Verbundtyp Vererbung Vergleichsoperator Vektoren als Parameter Vektoren von Klassen einfache Vererbungshierarchie mehrfache Vererbung mehrfache Vererbungshierarchie Vererbungshierarchie , , 10, 20, 30, 31, 33-38, 45, 46, 53-55, 62, 74, 76, 87-89, 91-93, 96, 100, 113, 147, 154, , , 200, , 225,252,255,256,267,272,273,349,350, , 225, , 123, 147, 156, 161, 174, 175, 180, 182, 183, , 195, , 222, 224, 230, , , 195, , 364, , , 57, 58

46 394 Register verschachtelte Klassen Verwaltungsfunktion virtual virtuelle Basisklasse virtueller Destruktor virtuelle Funktion visibility control void volati.1e Vorwärtsdeklaration Vorzeichen , 134, 147, 157, 202, 204, 205, 207, , 224, 352 5, 207, , 279, 364, , , 124, 170, 184, 185, 190, 199, 200, , 230, , 33, 38, 39, 78, 79, 81, 83, 85, 86, 88-90, 93-95, , , , 116, 125, 130, 135, 137, 139, 147, 153, 154, 156, 160, 161, 172, 176, , 185, 191, 192, , 214, , 241, 242, , 252, , 276, , 20, 21, 92, 140, 147, 156, 352, 353, , ,59, 273 wchar t while white space character write 44,46 8, 9, 16, 56, 58, 63, 68, 69, 73-77, 206, 221,253,255,263,265,275,352, , 255, X(const X&) 150, 151, 166, Zahlenbereich 25-27,29 Zeichen Kommentarzeichen Leerzeichen Tabelle der besonderen Zeichen Tabulatorzeichen Vorzeichen 11, 13-15, 23-25, 38,41-46, 58, 59, 98, 115, 153, 154, 170, 171, 213, 232, 251, 252, , 261, 263, 264, 267, 268, , 353, 360, 361, , , 98, , 59, 273

47 Register 395 Zeiger white space characters Zeichenkonstante konstanter Zeiger Zeigerarithmetik Zeiger auf Klassen Zeiger auf Klassen-Member Zeigerzugriffsoperator 254,255,361 41, 42-44, 46 14, 15, 30-34, 36, 37, 39, 41, 47, 48, 52, 54, 58, 60-63, 74, 86-88, 90-95, 97, 99, 100, 103, 114, 115, 118, 126, , 134, 139, 140, 149, 150, 155, 156, 161, 167, 173, 175,184,185,196,199,200,202,205,207, 211, 218, , 238, 245, 269, 270, 272, 350, 365, , 37,47,48, , 129, , 218, 222, 223 Zeiger auf Klassen Zeiger auf Klassen-Member Zeilenvorschub Zugriffsfunktionen zusammengesetzte Anweisung Zuweisung memberweise Zuweisung Zuweisungsoperatoren 31, 129, , 43, 256, , ,65 5, 8, 10, 15, 22, 27, 28, 36, 39, 47-49, 54-58, 60, 63-65, 67, 85, 87, 98, 100, 114, 130, 148, 150, 151, 153, 155, 158, 165, 166, 170, 173, 183, 194, 198, 217, ,237, 278, 349, 351, 355, 364 5, 166, 221, 364 8, 10, 54, 56-58, 63, 98, 166, 170, 217, 222, 278, 349

48 Objektorientiert mit Turbo C++ Objektorientierte Softwareentwicklung für Profis von Martin Aupperle XVI, 542 Seiten mit Diskette. Gebunden. ISBN Dieses ist das umfassende Buch zur professionellen, objektorientierten Nutzung von Turbo C++ für jeden Programmierer, der sich nicht mit weniger zufrieden geben will. Ein besonderer Vorzug sind die Tools, die auf Diskette sofort abrufbar zur Verfügung stehen. Besonderes Highlighf: Ein komfortables Fenstersystem, voll objektorientiert programmiert und beliebig erweiterbar. Hier können beispielsweise Fenster (mit Inhalt) ausgegeben und eingelesen werden! Verlag Vieweg Postfach D-6200 Wiesbaden v1eweg

Unterlagen. CPP-Uebungen-08/

Unterlagen.  CPP-Uebungen-08/ Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen

Mehr

Algorithmen zur Datenanalyse in C++

Algorithmen zur Datenanalyse in C++ Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff Programmieren in C C Syntax Datentypen, Operatoren und Kontrollstrukturen Prof. Dr. Nikolaus Wulff Elementare Typen Imperative und objektorientierte Programmiersprachen bieten i.d.r. einen Satz elementarer

Mehr

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter}); S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

FACHHOCHSCHULE MANNHEIM

FACHHOCHSCHULE MANNHEIM für Java-Programmierer Der Präprozessor Prof. Dr. Wolfgang Schramm FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Präprozessor Ist dem Compiler vorgeschaltet ( Prä -). Spezielle Anweisungen

Mehr

Programmieren in C++ Überladen von Methoden und Operatoren

Programmieren in C++ Überladen von Methoden und Operatoren Programmieren in C++ Überladen von Methoden und Operatoren Inhalt Überladen von Methoden Überladen von Operatoren Implizite und explizite Konvertierungsoperatoren 7-2 Überladen von Methoden Signatur einer

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

Programmieren in C / C++ Grundlagen C 2

Programmieren in C / C++ Grundlagen C 2 Programmieren in C / C++ Grundlagen C 2 Hochschule Fulda FB AI Wintersemester 2016/17 http://c.rz.hs-fulda.de Peter Klingebiel, HS Fulda, FB AI Anweisung / Ausdruck 1 Programm setzt sich aus vielen Anweisungen

Mehr

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Grundlagen. Die Komponenten eines C Programms. Das erste Programm Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen

Mehr

Erste Schritte der Programmierung in C

Erste Schritte der Programmierung in C Erste Schritte der Programmierung in C C versus C++ Anatomie von C-Programmen für AVR- Mikrocontroller Unterschiede zwischen C++ und C 1 Grundlegende Unterschiede File-Extensions (Header und Quellcode)

Mehr

Funktionales C++ zum Ersten

Funktionales C++ zum Ersten Funktionales C++ zum Ersten WiMa-Praktikum 1, Teil C++, Tag 1 Christoph Ott, Büro: Helmholtzstr.18, E22 Tel.: 50-23575, Mail: christoph.ott@uni-ulm.de Institut für Angewandte Informationsverarbeitung 26.08.08

Mehr

C++-Zusammenfassung. H. Schaudt. August 18, 2005

C++-Zusammenfassung. H. Schaudt. August 18, 2005 C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:

Mehr

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22 C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven

Mehr

Programmierkurs Kapitel 4: Dateien Seite 1. Verwaltungfeld im Speicher. 4.1 Alternativen zur Programmierung der Eingabe und der Ausgabe

Programmierkurs Kapitel 4: Dateien Seite 1. Verwaltungfeld im Speicher. 4.1 Alternativen zur Programmierung der Eingabe und der Ausgabe Programmierkurs Kapitel 4: Dateien Seite 1 4 Dateien Verwaltungfeld im Speicher Dateivariable im Programm Dateizeiger Schreib-/Lesefeld im Programm EOF 4.1 Alternativen zur Programmierung der Eingabe und

Mehr

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1 Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur

Mehr

Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1

Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1 Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1 Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Das C++ Typsystem simple structured integral enum

Mehr

C++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland.

C++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland. C++ Klassen, Vererbung Philipp Lucas phlucas@cs.uni-sb.de Sebastian Hack hack@cs.uni-sb.de Wintersemester 2008/09 saarland university computer science 1 Inhalt Klassen in C++ Sichtbarkeit Erzeugen von

Mehr

C++ - Variablen: Gültigkeit - Sichtbarkeit

C++ - Variablen: Gültigkeit - Sichtbarkeit C++ - Variablen: Gültigkeit - Sichtbarkeit Reiner Nitsch 8417 r.nitsch@fbi.h-da.de Attribute von Variablen und Funktionen Attribute von Variablen sind Name (name), Typ (type), Wert (value) Attribute von

Mehr

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

C++ - Operatoren. Eigene Klassen mit neuen Funktionen C++ - Operatoren Eigene Klassen mit neuen Funktionen Übersicht Klassen bisher Eigene Operatoren definieren 2 Bisher Durch Kapselung, Vererbung und Polymorphy können nun eigene Klassen definiert werden,

Mehr

C/C++ Programmierung

C/C++ Programmierung 1 C/C++ Programmierung Grundlagen: Einführung und Ausdrücke Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Hello,

Mehr

Einführung in die Programmierung Wintersemester 2008/09

Einführung in die Programmierung Wintersemester 2008/09 Einführung in die Programmierung Wintersemester 28/9 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Darstellung von Information Inhalt Einfache Datentypen

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 3 C-Ausdrücke...3-2 3.1 Arithmetische Ausdrücke...3-3 3.2 Wertzuweisungen...3-5 3.3 Inkrementieren und Dekrementieren...3-6 3.4 Logische Ausdrücke (Bedingungen)...3-7 3.5 Bedingte Ausdrücke...3-8

Mehr

Algorithmen & Programmierung. Ausdrücke & Operatoren (1)

Algorithmen & Programmierung. Ausdrücke & Operatoren (1) Algorithmen & Programmierung Ausdrücke & Operatoren (1) Ausdrücke Was ist ein Ausdruck? Literal Variable Funktionsaufruf Ausdruck, der durch Anwendung eines einstelligen (unären) Operators auf einen Ausdruck

Mehr

Objektorientiert in C++

Objektorientiert in C++ Dirk Louis Objektorientiert in C++ Einstieg und professioneller Einsatz intwickier.pres: Vorwort 11 1 Schnellkurs C++ 13 1.1 ANSI-C++ und die Compiler 13 Compiler und Programmerstellung 13 ANSI und die

Mehr

Werner Achte rt DATA BECKER

Werner Achte rt DATA BECKER Werner Achte rt. DATA BECKER Inhaltsverzeichnis 1. Einführung 21 1.1 Entwurf von Anwendungssystemen 23 1.2 Entwicklung eines Programms 25 1.3 Objektorientierte Programmierung 29 1.4 Darstellung objektorientierter

Mehr

Grundlagen der Programmierung in C Basics

Grundlagen der Programmierung in C Basics Was ist ein Programm? Grundlagen der Programmierung in C Basics Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Abstrakt: Zeichenfolge entsprechend einer formalen

Mehr

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent magnum C++ WALTER SAUMWEBER kompakt komplett kompetent Quickview... 5 Liebe Leserin, lieber Leser... 13 Teil 1 Grundlagen... 15 1 Was ist Programmieren?... 17 1.1 Was ist eigentlich ein Computerprogramm?...

Mehr

RO-Tutorien 3 / 6 / 12

RO-Tutorien 3 / 6 / 12 RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Die Programmiersprache C

Die Programmiersprache C Die Programmiersprache C höhere Programmiersprache (mit einigen Assembler-ähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,

Mehr

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl Funktionen Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung erlaubt

Mehr

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine

Mehr

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

C++ Notnagel. Ziel, Inhalt. Programmieren in C++ C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

Einheit Lexikalische Grundlagen der Programmiersprache C Lexikalische Einheiten

Einheit Lexikalische Grundlagen der Programmiersprache C Lexikalische Einheiten Einheit Lexikalische Grundlagen der Programmiersprache C Lexikalische Einheiten Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik R. Spurk (Informatik)

Mehr

Name: Klausur Informatik III WS 2003/04

Name: Klausur Informatik III WS 2003/04 1 : Methodenimplementierung ca. 42 Punkte Gegeben ist die Klasse Mitarbeiter. Listing 1: (./Code1/Mitarbeiter.h) using namespace std; // globale Variable fuer Ausgabedatei // kann entsprechend

Mehr

Grundlagen der Programmierung in C Basics

Grundlagen der Programmierung in C Basics Grundlagen der Programmierung in C Basics Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Was ist ein Programm? Abstrakt: Zeichenfolge entsprechend einer formalen

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Funktionen Rückblick Operatoren logische Verknüpfungen Zusammengesetzte Operatoren ( Zuweisungsoperatoren ) Kontrollstrukturen Bedingte Anweisungen (if-abfrage, switch-konstrukt)

Mehr

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Textausgabe per printf Die Funktion printf ist kein Bestandteil der C Sprache sondern gehört zur C Bibliothek. printf

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Polymorphie, Abstrakte Klassen, Mehrfachvererbung Prof. Dr.-Ing. Thomas Wiedemann Prof. Dr. rer.nat. Ralph Großmann Fachgebiet Informatik / Mathematik Überblick zum Inhalt Klassen-3

Mehr

Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen

Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen 1 C-Schlüsselwörter Schlüsselwörter sind in allen Programmiersprachen reservierte Wörter. In C sind auch alle Namen _[A-Z]... und... reserviert, auch _... bereichsweise. Weiterhin durch die Standard-

Mehr

5 Grundlagen der Java-Syntax

5 Grundlagen der Java-Syntax 5 Grundlagen der Java-Syntax Es sollen nun einige Grundregeln besprechen, die in jeder Java-Programmdatei berücksichtigt werden müssen. 5.1 Grundsätzliches zur Syntax von Java Programmen Zunächst sollten

Mehr

4.2 Basisdatentypen und einfache Anweisungen

4.2 Basisdatentypen und einfache Anweisungen Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Pointern

Mehr

Was Mathematiker schon vor Jahrhunderten erfunden haben, gibt es jetzt endlich in ihrer Programmiersprache:

Was Mathematiker schon vor Jahrhunderten erfunden haben, gibt es jetzt endlich in ihrer Programmiersprache: Kapitel 8 Operatoren Was Mathematiker schon vor Jahrhunderten erfunden haben, gibt es jetzt endlich in ihrer Programmiersprache: Operatoren definieren Es ist in C++ möglich, Operatoren wie +, oder für

Mehr

3. Einführung in C Programmierung Einführung in C Programmierung

3. Einführung in C Programmierung Einführung in C Programmierung Einführung in C Programmierung 3-1 Warum die Programmiersprache C lernen? C Programme sind leicht zwischen verschiedenen Systemumgebungen portierbar. C ist eine geeignete Sprache zum Aufbau einer Programmbausteinbibliothek.

Mehr

C++ Teil 6. Sven Groß. 27. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 14

C++ Teil 6. Sven Groß. 27. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 14 C++ Teil 6 Sven Groß 27. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 6 27. Mai 2016 1 / 14 Themen der letzten Vorlesung Musterlösung A2 Wdh.: Zeiger und Felder Kopieren von Feldern Dynamische Speicherverwaltung

Mehr

Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling

Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling Input / Output in C, C++ Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling Page 1 Ausgaben in C,C++ - generell Fuer C basierte Ausgaben:

Mehr

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio)

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) Beispiel Beispiel: Namensliste konvertieren (Karl Egon Meier Meier, Karl Egon). s/(.*) (.*)/$2, $1/; Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) s/(.*) (.*)/$2, $1/; s/(.*) ([a-z]+

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen

Mehr

3D Programmierpraktikum: Einführung in C++ - Teil 2

3D Programmierpraktikum: Einführung in C++ - Teil 2 3D Programmierpraktikum: Einführung in C++ - Teil 2 Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 4. Mai 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum

Mehr

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang

Mehr

Operatoren (1) Operatoren (2)

Operatoren (1) Operatoren (2) Operatoren (1) Binäre Operatoren + - * / % < = > & ^ > && Addition Subtraktion Multiplikation Division Divisionsrest Vergl. auf kleiner Vergl. auf kleiner oder gleich Vergl. auf gleich Vergl.

Mehr

Prof. W. Henrich Seite 1

Prof. W. Henrich Seite 1 Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse

Mehr

Ausdrücke. Variable, Typ, Kontext, Deklaration, Initialisierung, Ausdruck, Syntax, Semantik, Seiteneffekt

Ausdrücke. Variable, Typ, Kontext, Deklaration, Initialisierung, Ausdruck, Syntax, Semantik, Seiteneffekt Ausdrücke Variable, Typ, Kontext, Deklaration, Initialisierung, Ausdruck, Syntax, Semantik, Seiteneffekt Variablen als Stellvertreter In der Mathematik Variable ist Stellvertreter eines Wertes ändert sich

Mehr

Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert.

Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert. Ein- und Ausgabe Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert. Komplexe E/A-Operationen werden erst diskutiert, nachdem das Klassenkonzept erarbeitet

Mehr

Typ : void* aktuelle Parameter Pointer von beliebigem Typ

Typ : void* aktuelle Parameter Pointer von beliebigem Typ 2. Funktionen - Prototypvereinbarung typangabe funktionsname(parameterliste); - Funktionsdefinition typ funktionsname(parameterliste){ Anweisung - Funktionstyp -> Typ der Funktionswertes zulaessige Typangaben

Mehr

C-Deklarationen lesen und schreiben

C-Deklarationen lesen und schreiben C-Deklarationen lesen und schreiben Version 1.2 6.7.2009 email: tb@ostc.de Web: www.ostc.de Die Informationen in diesem Skript wurden mit größter Sorgfalt erarbeitet. Dennoch können Fehler nicht vollständig

Mehr

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind

Mehr

Kapitel 11: Wiederholung und Zusammenfassung

Kapitel 11: Wiederholung und Zusammenfassung Wiederholung und Zusammenfassung 1: Begriff und Grundprobleme der Informatik Begriff Informatik Computer als universelle Rechenmaschine Grenzen der Berechenbarkeit Digitalisierung Problem der Komplexität

Mehr

Arrays (Felder/Vektoren)

Arrays (Felder/Vektoren) Arrays (Felder/Vektoren) Zusammenfassung mehrerer Variablen des gleichen Typs unter einem Namen im Speicher direkt hintereinander abgelegt Definition: Typname Arrayname [Größe]; Beispiel: int ar [5]; Zugriff

Mehr

Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp

Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden mitp Inhaltsverzeichnis Einleitung 19 Grundlagen 21 Entwicklung und Eigenschaften von C++ 22 Objektorientierte Programmierung 24 Erstellen

Mehr

Grundlagen der Informatik 2. Operatoren

Grundlagen der Informatik 2. Operatoren 2. Operatoren Referenzen Typumwandlungen Vorrangregeln Kommentare Grundlagen der Informatik (Alex Rempel) 1 Ausdruck (z.b. "x = 34 + y;") Folge von Operatoren und Operanden Operatoren Arithmetische Operatoren

Mehr

C++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen

C++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen C++ Kurs Teil 1 "hello world" Vergleich von C++ und Java Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen C++ Spezialitäten Schlüsselwort 'const', Copy Constructor,

Mehr

Überblick. 5. Objekt und Klasse, Elementfunktionen

Überblick. 5. Objekt und Klasse, Elementfunktionen Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen

Mehr

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität

Mehr

Moderne C-Programmierung

Moderne C-Programmierung Xpert.press Moderne C-Programmierung Kompendium und Referenz Bearbeitet von Helmut Schellong 1. Auflage 2005. Buch. xii, 280 S. ISBN 978 3 540 23785 3 Format (B x L): 15,5 x 23,5 cm Weitere Fachgebiete

Mehr

Die Programmiersprache C Eine Einführung

Die Programmiersprache C Eine Einführung Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert

Mehr

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010 Grundlagen der Programmierung Teil1 Einheit III - 22. Okt. 2010 GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer Einschub Bevor wir mit den

Mehr

1.4. Funktionen. Objektorientierte Programmierung mit C++

1.4. Funktionen. Objektorientierte Programmierung mit C++ mehrfache Deklarationen sind erlaubt für jede Funktion muss es (GENAU) eine Definition geben, ansonsten linker error [the one definition rule ODR] Deklarationen in *.h - Files, Definitionen in *.cpp -

Mehr

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08 Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für

Mehr

Übersicht. Vorstellung des OO-Paradigmas

Übersicht. Vorstellung des OO-Paradigmas Java, OO und UML Vorstellung des OO-Paradigmas Übersicht Umsetzung des OO-Paradigmas in Java Einführung (seeeeeehr rudimenter) in UML zur graphischen Darstellung von OO Grammatik und Semantik von Java

Mehr

Einführung in die Programmierung Wintersemester 2011/12

Einführung in die Programmierung Wintersemester 2011/12 Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Kontrollstrukturen Inhalt Wiederholungen - while

Mehr

Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom Foliensatz 2

Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom Foliensatz 2 Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom 29.10. Foliensatz 2 Modularisierung (T) Eigene Headerdateien und Bibliotheken (P) Arten der Parameterübergabe (P) Arrays und Strukturen

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Vorlesung 6: Operatoren, Logische Ausdrücke

Vorlesung 6: Operatoren, Logische Ausdrücke Vorlesung 6: Operatoren, Logische Ausdrücke Inhalt Organisatorisches Offene Übungen Operatoren Logische Ausdrücke Dr. J. Raimann 1 Offene Übungen (durch Tutoren betreut) montags 1. und 2. Block (8.15 Uhr

Mehr

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort then S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

Vektoren 105. array-qualifier static restrict const volatile array-size-expression assignment-expression * simple-declarator identifier

Vektoren 105. array-qualifier static restrict const volatile array-size-expression assignment-expression * simple-declarator identifier Vektoren 105 direct-declarator simple-declarator ( simple-declarator ) function-declarator array-declarator array-declarator direct-declarator [ [ array-qualifier-list ] [ array-size-expression ] ] array-qualifier-list

Mehr

10 Die Programmiersprache C99: Zusammenfassung

10 Die Programmiersprache C99: Zusammenfassung 10 Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 25. September 2014, 18:40 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html

Mehr

Kapitel 6: Dynamische Speicherverwaltung

Kapitel 6: Dynamische Speicherverwaltung Kapitel 6: Dynamische Speicherverwaltung Dieses Kapitel beschreibt die Operatoren new und delete, mit denen dynamisch Speicher reserviert und freigegeben wird. Außerdem wird im Detail eingegangen auf:

Mehr

Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden:

Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden: 3 Grundlagen 3.1 Starten eines C++ Programms Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden: 1. Programme, die vom Interpreter der Programmiersprache Zeile für Zeile interpretiert

Mehr

Propädeutikum. Dipl.-Inf. Frank Güttler

Propädeutikum. Dipl.-Inf. Frank Güttler Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) guettler@informatik.uni-leipzig.de Universität Leipzig Institut für Informatik Technische Informatik

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten

Mehr

Programmierung mit C Zeiger

Programmierung mit C Zeiger Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch

Mehr

Programmieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff

Programmieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff Programmieren in C Speicher anfordern, Unions und Bitfelder Prof. Dr. Nikolaus Wulff Vergleich: Felder und Strukturen Felder müssen Elemente vom selben Typ enthalten. Strukturen können Elemente unterschiedlichen

Mehr

Themen. Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren

Themen. Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren Themen Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren Statische Methoden Klassenmethoden Merkmal der Klasse nicht eines einzelnen Objekts

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere

Mehr

Auswahlen (Selektionen)

Auswahlen (Selektionen) 1 Anhang 10.3 Ein/Ausgaben Eingabe mit Prompt (Beispiel) cout ; // Prompt ohne endl cin

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08

Mehr

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A 2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,

Mehr

Programmieren I. Kapitel 5. Kontrollfluss

Programmieren I. Kapitel 5. Kontrollfluss Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,

Mehr

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include

Mehr

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik

Mehr