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.

478 15. Verschiedenes<br />

waren, musste ich <strong>in</strong> dieser Besprechung allen Lesern Teile der Information<br />

vorenthalten. Diese fehlenden Teile möchte ich nun hier nachliefern, geme<strong>in</strong>sam<br />

mit <strong>in</strong>teressanten Eigenheiten von dynamic_cast.<br />

Bisher bekannt ist, dass man mittels typeid den Typ e<strong>in</strong>er Variable erfahren<br />

kann. Nicht wirklich erklärt wurde, was typeid nun genau liefert<br />

und was man alles damit tun kann. Hier wenden wir uns am besten e<strong>in</strong>em<br />

Beispiel zu (rtti_demo.cpp):<br />

1 // rtti demo . cpp − demo , what can be done with r t t i<br />

2<br />

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

4 #<strong>in</strong>clude < t y pe<strong>in</strong>fo><br />

5 #<strong>in</strong>clude ” u s e r t y p e s . h”<br />

6<br />

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

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

9 us<strong>in</strong>g std : : type <strong>in</strong>fo ;<br />

10 us<strong>in</strong>g std : : bad typeid ;<br />

11 us<strong>in</strong>g std : : bad cast ;<br />

12<br />

13<br />

14<br />

15 //−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−<br />

16 class DummyBase<br />

17 {<br />

18 public :<br />

19 virtual void doSometh<strong>in</strong>g ( )<br />

20 {<br />

21 cout

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!