c○ Prof. Dr. B. Bartning, HS <strong>Emden</strong>/<strong>Leer</strong> Rumpfskript ” Informatik I/II“ (WS/SS 2010/11) 80 übersichtlich ist: unnötige Blockschachtelung und Mehrfachdefinition desselben Namens. Trotzdem ist es wichtig, es zu verstehen; es dient daher nur zum Lernen, zur Übung. Die Kennzeichnungen *xxx* in den Kommentaren deuten die verschiedenen Speicherplätze mit demselben Namen an. #include // Beispielprogramm D07-15.CPP using namespace std; void druck(int wert) { cout
c○ Prof. Dr. B. Bartning, HS <strong>Emden</strong>/<strong>Leer</strong> Rumpfskript ” Informatik I/II“ (WS/SS 2010/11) 81 muss jedoch wissen, was der Name bedeuten soll – spätestens beim ersten Funktionsaufruf. Dazu dient eine Funktionsdeklaration; sie führt den Namen ein, teilt dem Compiler mit, welche Parameter und welchen Rückgabetyp die Funktion hat. Funktionsdeklarationen werden in C ++/C sehr häufig benutzt, selbst dann wenn sie vermeidbar wären, weil die Definition vor dem ersten Gebrauch geschehen könnte. (7.23) 10/11 FunktionsDeklaration 12/14 RückgabeTyp 30/32,Alt.4 FunktionsBezeichner ( ParameterDekl.-LISTEopt ) ; Eine Funktionsdeklaration ist syntaktisch einer Funktionsdefinition sehr ähnlich, s. (7.11a), nur statt des Funktionsblockes (ZusammengesetzteAnweisung) steht ein Semikolon. Mit der Funktionsdeklaration erhält der Compiler die Information über: • Funktionsname, • Signatur der Funktion (Anzahl, Typ, Reihenfolge der Parameter), • Rückgabetyp. Es fehlt ihm hier nur noch die Information über die Einsprungadresse in die Funktion, s. (7.14c). Diese Einsprungadresse muss später eingesetzt werden, und zwar • durch den Compiler, wenn die Definition später in der gleichen Programmdatei erfolgt, • durch den Linker, wenn die Funktion woanders definiert wird. Bsp Deklaration aller Funktionen aus Beispielprogramm (7.13): int wertPlus1(int wert); int summe(int par1, int par2); int zahlFest(); void intDruck(int wert); Anm1 In den Headerdateien sind viele Funktionsdeklarationen vorhanden, z. B. : get, getline; : strcpy, strcat, strlen. Anm2 In einer Deklaration (i. a. nicht in einer Definition) ist es erlaubt, den Namen – nicht den Typ – der formalen Parameter wegzulassen. Empfehlung: Namen nicht weglassen, da (hoffentlich!) die Bedeutung der Parameter beschreibend ( ” selbstdokumentierender Name“). Beispiel: double potenz(double basis, double exp); // empfohlen double potenz(double, double); // erlaubt - aber Bedeutung der Par.? Anm3 Eine Funktionsdeklaration darf mehrfach vorhanden sein, solange sich die Deklarationen nicht widersprechen (Übereinstimmung Name, Signatur, Rückgabetyp – Parameternamen dürfen unterschiedlich sein; eine unterschiedliche Signatur führt zu unterschiedlichen Funktionen, vgl. (7.61)). Eine Deklaration ist auch erlaubt, wenn die Funktion nicht aufgerufen wird. Eine Funktionsdefinition dagegen darf nur genau einmal auftreten; wenn die Funktion nicht benutzt wird, darf sie auch fehlen. ↑↑ Bei virtuellen Elementfunktionen (einer Klasse) muss auch dann eine Definition vorhanden sein, wenn die Elementfunktion nicht benutzt wird, siehe (11.42 ↑↑1). Anm4 C △! Wenn kein Parameter vorhanden ist, dann sollte in der Definition und in der Deklaration auf jeden Fall statt RückgabeTyp FunktionsName() // leere Parameterliste besser folgendes geschrieben werden: RückgabeTyp FunktionsName(void) 7.3 Referenztyp Die Schreibweise mit void ist auch in C++ erlaubt, aber nicht nötig; in C ist sie sehr wichtig, da die Schreibweise mit leerem Klammernpaar aus historischen Gründen eine andere Bedeutung hat (Funktion mit einer nicht näher spezifizierten Anzahl von Parametern). (7.30) Übb Durch eine Referenz wird zu einer bereits existierenden Variablen ein Synonym erzeugt, d. h. ein zusätzlicher Name, der auf denselben Speicherplatz wie der Originalname verweist. In diesem Unterkapitel wird allgemein gezeigt, wie in C ++ eine Referenz erzeugt
- Seite 1 und 2:
Informatik I/II Studiengänge Photo
- Seite 3 und 4:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 5 und 6:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 7 und 8:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 9 und 10:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 11 und 12:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 13 und 14:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 15 und 16:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 17 und 18:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 19 und 20:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 21 und 22:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 23 und 24:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 25 und 26:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 27 und 28:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 29 und 30: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 31 und 32: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 33 und 34: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 35 und 36: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 37 und 38: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 39 und 40: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 41 und 42: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 43 und 44: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 45 und 46: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 47 und 48: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 49 und 50: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 51 und 52: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 53 und 54: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 55 und 56: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 57 und 58: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 59 und 60: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 61 und 62: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 63 und 64: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 65 und 66: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 67 und 68: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 69 und 70: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 71 und 72: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 73 und 74: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 75 und 76: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 77 und 78: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 79: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 83 und 84: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 85 und 86: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 87 und 88: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 89 und 90: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 91 und 92: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 93 und 94: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 95 und 96: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 97 und 98: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 99 und 100: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 101 und 102: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 103 und 104: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 105 und 106: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 107 und 108: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 109 und 110: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 111 und 112: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 113 und 114: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 115 und 116: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 117 und 118: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 119 und 120: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 121 und 122: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 123 und 124: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 125 und 126: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 127 und 128: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 129 und 130: c○ Prof. Dr. B. Bartning, HS Emde
- Seite 131 und 132:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 133 und 134:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 135 und 136:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 137 und 138:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 139 und 140:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 141 und 142:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 143 und 144:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 145 und 146:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 147 und 148:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 149 und 150:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 151 und 152:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 153 und 154:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 155 und 156:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 157 und 158:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 159 und 160:
c○ Prof. Dr. B. Bartning, HS Emde
- Seite 161 und 162:
c○ Prof. Dr. B. Bartning, HS Emde