30.06.2013 Aufrufe

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

13.5 Explizite Spezialisierungen 443<br />

2 , g e n e r i c getNext method<br />

3 , g e n e r i c getNext method<br />

4<br />

content of f l o a t b u f f e r : g e n e r i c getNext method<br />

1 , g e n e r i c getNext method<br />

2 , g e n e r i c getNext method<br />

3 , g e n e r i c getNext method<br />

4<br />

content of i n t 3 2 p t r b u f f e r : s p e c i a l i z e d getNext method<br />

g e n e r i c getNext method<br />

1 , s p e c i a l i z e d getNext method<br />

g e n e r i c getNext method<br />

2 , s p e c i a l i z e d getNext method<br />

g e n e r i c getNext method<br />

3 , s p e c i a l i z e d getNext method<br />

g e n e r i c getNext method<br />

4<br />

content of f l o a t p t r b u f f e r : s p e c i a l i z e d getNext method<br />

g e n e r i c getNext method<br />

1 , s p e c i a l i z e d getNext method<br />

g e n e r i c getNext method<br />

2 , s p e c i a l i z e d getNext method<br />

g e n e r i c getNext method<br />

3 , s p e c i a l i z e d getNext method<br />

g e n e r i c getNext method<br />

4<br />

content of c h a r p t r b u f f e r : s p e c i a l i z e d getNext method<br />

g e n e r i c getNext method<br />

a , s p e c i a l i z e d getNext method<br />

g e n e r i c getNext method<br />

b , s p e c i a l i z e d getNext method<br />

g e n e r i c getNext method<br />

c , s p e c i a l i z e d getNext method<br />

g e n e r i c getNext method<br />

d<br />

s p e c i a l i z e d d e s t r u c t o r<br />

g e n e r i c d e s t r u c t o r<br />

s p e c i a l i z e d d e s t r u c t o r<br />

g e n e r i c d e s t r u c t o r<br />

s p e c i a l i z e d d e s t r u c t o r<br />

g e n e r i c d e s t r u c t o r<br />

g e n e r i c d e s t r u c t o r<br />

g e n e r i c d e s t r u c t o r<br />

g e n e r i c d e s t r u c t o r<br />

Vorsicht Falle: Neben allen Aspekten der Spezialisierung, die hier angerissen<br />

wurden, können vor allem Neul<strong>in</strong>ge auf dem Gebiet der Templates<br />

oft e<strong>in</strong>er Versuchung nicht widerstehen: Sie wollen e<strong>in</strong>e “normale” Klasse<br />

implementieren, die denselben Namen hat, wie e<strong>in</strong> Class Template. Dieses<br />

Unterfangen geht unweigerlich schief, denn Overload<strong>in</strong>g ist nur für Funktionen<br />

und Methoden def<strong>in</strong>iert, nicht aber für Klassen! Deshalb gilt folgende<br />

Grundregel:<br />

Reale Klassen und Class Templates dürfen niemals denselben<br />

Namen haben!<br />

Um das Thema der Spezialisierungen abzurunden möchte ich hier nur<br />

noch kurz anmerken, dass man solche Spezialisierungen <strong>in</strong> genau derselben<br />

Form auch mit Function-Templates durchführen kann und dass diese nicht<br />

auf Class Templates beschränkt s<strong>in</strong>d. E<strong>in</strong>e explizite Besprechung von Bei-

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!