Breymann. C++ Einführung und professionelle Programmierung
Breymann. C++ Einführung und professionelle Programmierung Breymann. C++ Einführung und professionelle Programmierung
Auslagern des Vergleichs erspart die Änderung von quicksort(), wenn der Operator < anders definiert werden muss, z.B. Vergleich nach Absolutbetrag: // (#include für abs() nicht vergessen) int kleiner(const int& a, const int& b) { // Vergleich jetzt nach dem Absolutbetrag! } return abs(a) < abs(b); Spezialfälle von überladenen Funktionen werden nach den Templates eingefügt. Ein Template ist keine Funktionsdefinition im bisherigen Sinn! Die konkrete Definition wird erst bei Bedarf erzeugt. Breymann C++, c○ Hanser Verlag München Inhalt ◭◭ ◭ ◮ ◮◮ 140 zurück Ende
4.5 inline-Funktionen inline ist eine Empfehlung an den Compiler, einen Funktionsaufruf direkt durch den Funktionskörper zu ersetzen. Vorteil: Zeitersparnis Empfehlenswert nur für Funktionen mit kurzer Ausführungszeit. inline int quadrat(int x) { } return x*x; z = quadrat(100); wird dann ersetzt durch z = 100*100; inline-Funktionen sind in Header-Dateien (*.h) zu definieren, nicht in Implementationsdateien (*.cpp), um Linker-Fehler zu vermeiden. Breymann C++, c○ Hanser Verlag München Inhalt ◭◭ ◭ ◮ ◮◮ 141 zurück Ende
- Seite 89 und 90: 4. Programmstrukturierung - Funktio
- Seite 91 und 92: } // alternativ mit Zwischenablage
- Seite 93 und 94: Rückgabetyp Funktionsname ( Formal
- Seite 95 und 96: #include using namespace std; int a
- Seite 97 und 98: 4.2 Schnittstellen zum Datentransfe
- Seite 99 und 100: Aufrufer-Sicht i symbolischer Name
- Seite 101 und 102: 4.2.2 Übergabe per Referenz In der
- Seite 103 und 104: Aufrufer-Sicht Speicherzelle i symb
- Seite 105 und 106: 4.2.4 Vorgabewerte und variable Par
- Seite 107 und 108: 4.2.5 Überladen von Funktionen der
- Seite 109 und 110: 4.2.6 Funktion main Varianten: int
- Seite 111 und 112: 4.3 Grundsätze der modularen Gesta
- Seite 113 und 114: 4.3.2 Einbinden vorübersetzter Pro
- Seite 115 und 116: mainprog.cpp #include "a.h" #includ
- Seite 117 und 118: Üblich: make-Files oder „Projekt
- Seite 119 und 120: Beschränkung des Gültigkeitsberei
- Seite 121 und 122: 4.3.4 Übersetzungseinheit, Deklara
- Seite 123 und 124: one definition rule Jede Variable,
- Seite 125 und 126: Inhalt von Implementations-Dateien
- Seite 127 und 128: 4.3.5 Compilerdirektiven sind Anwei
- Seite 129 und 130: Makros mit #define zum Ersetzen von
- Seite 131 und 132: Eine weitere übliche Anwendung von
- Seite 133 und 134: Nur mit den Sprachelementen von C++
- Seite 135 und 136: Verifizieren logischer Annahmen mit
- Seite 137 und 138: template int kleiner(const T& a, co
- Seite 139: * Erst in der folgenden Anweisung w
- Seite 143 und 144: 5. Objektorientierung 1 - Abstrakte
- Seite 145 und 146: } // ... Protokollierung Punkt einP
- Seite 147 und 148: Eigenschaften: • Der Sinn liegt d
- Seite 149 und 150: class Klassenname { public: Typ Ele
- Seite 151 und 152: Anwendung: // ort1main.cpp #include
- Seite 153 und 154: aendern() soll Änderungen der Koor
- Seite 155 und 156: 2. Deklaration und Definition inner
- Seite 157 und 158: 5.3 Initialisierung und Konstruktor
- Seite 159 und 160: 5.3.2 Allgemeine Konstruktoren Allg
- Seite 161 und 162: Initialisierung mit Listen Beispiel
- Seite 163 und 164: }; private: int xKoordinate, yKoord
- Seite 165 und 166: 5.3.3 Kopierkonstruktor engl.: copy
- Seite 167 und 168: Übergabe von Objekten an eine Funk
- Seite 169 und 170: Zahl bilden int Koordinate = 0; whi
- Seite 171 und 172: Verhindern impliziter Typwandlungen
- Seite 173 und 174: Folgende Funktionen sollen von der
- Seite 175 und 176: Beschränkungen und Hinweise - Kür
- Seite 177 und 178: Möglichkeiten für Operationen mit
- Seite 179 und 180: void eingabe(); void ausgabe() cons
- Seite 181 und 182: 5.4.3 Implementation void rational:
- Seite 183 und 184: void rational::sub(const rational&
- Seite 185 und 186: long ggt(long x, long y) { // wird
- Seite 187 und 188: ational mult(const rational& a, con
- Seite 189 und 190: 5.6 Faustregeln zur Konstruktion vo
4.5 inline-Funktionen<br />
inline<br />
ist eine Empfehlung an den Compiler, einen Funktionsaufruf direkt durch<br />
den Funktionskörper zu ersetzen. Vorteil: Zeitersparnis<br />
Empfehlenswert nur für Funktionen mit kurzer Ausführungszeit.<br />
inline int quadrat(int x) {<br />
}<br />
return x*x;<br />
z = quadrat(100); wird dann ersetzt durch z = 100*100;<br />
inline-Funktionen sind in Header-Dateien (*.h) zu definieren, nicht in<br />
Implementationsdateien (*.cpp), um Linker-Fehler zu vermeiden.<br />
<strong>Breymann</strong> <strong>C++</strong>, c○ Hanser Verlag München<br />
Inhalt ◭◭ ◭ ◮ ◮◮ 141 zurück Ende