30.06.2013 Aufrufe

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

13.2 Overload<strong>in</strong>g Aspekte von Function Templates 417<br />

nem Programm immer das Maximum aus e<strong>in</strong>em <strong>in</strong>t32 Array f<strong>in</strong>den wollen.<br />

Andererseits jedoch haben wir es <strong>in</strong> den verschiedenen Programmteilen e<strong>in</strong>mal<br />

mit e<strong>in</strong>em signed char, e<strong>in</strong> andermal mit e<strong>in</strong>em <strong>in</strong>t32 und wieder e<strong>in</strong><br />

andermal mit e<strong>in</strong>em long Parameter als Index zu tun. Der Compiler würde<br />

nun drei verschiedene konkrete Ausprägungen der Funktion erzeugen, was<br />

nicht immer wünschenswert ist. In diesem Fall wäre es genug, wenn e<strong>in</strong>fach<br />

e<strong>in</strong>e Version mit e<strong>in</strong>em long als zweiten Parameter erzeugt würde, denn die<br />

anderen verwendeten Typen s<strong>in</strong>d ja kompatibel dazu. Zu diesem Zweck gibt<br />

es die Möglichkeit der expliziten Angabe, mit welchen Typen man arbeiten<br />

will. Dies sieht dann folgendermaßen aus:<br />

1 // f<strong>in</strong>d max test v4 . cpp − adapted t e s t f o r V3 o f the template<br />

2<br />

3 #<strong>in</strong>clude ” f<strong>in</strong>d max template function v3 . h”<br />

4 #<strong>in</strong>clude <br />

5<br />

6 us<strong>in</strong>g std : : cout ;<br />

7 us<strong>in</strong>g std : : endl ;<br />

8<br />

9 <strong>in</strong>t ma<strong>in</strong> ( <strong>in</strong>t argc , char ∗ argv [ ] )<br />

10 {<br />

11 <strong>in</strong>t32 t e s t a r r a y [ ] = { 4 , 1 , 2 , 5 , 3 } ;<br />

12<br />

13 cout

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!