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.

9.2 E<strong>in</strong>fache Klassen 173<br />

Zurück zum Thema: Betrachten wir als erste identifizierte Klasse e<strong>in</strong>e<br />

Karte. E<strong>in</strong>e Möglichkeit, diese <strong>in</strong> C ++ zu modellieren, mit der entsprechenden<br />

Deklaration des gefundenen Modells, f<strong>in</strong>det sich <strong>in</strong> folgendem Beispiel<br />

(memory_game_card.h):<br />

1 // memory game card . h − d e c l a r a t i o n o f the c l a s s MemoryGameCard<br />

2<br />

3 #ifndef memory game card h<br />

4 #def<strong>in</strong>e memory game card h<br />

5<br />

6 //−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−<br />

7 /∗<br />

8 ∗ MemoryGameCard<br />

9 ∗<br />

10 ∗ model of a card as used <strong>in</strong> the game ”memory”<br />

11 ∗<br />

12 ∗/<br />

13<br />

14 class MemoryGameCard<br />

15 {<br />

16 protected :<br />

17 char ∗ symbol ;<br />

18 public :<br />

19 MemoryGameCard( const char ∗ symbol ) ;<br />

20 ˜MemoryGameCard ( ) ;<br />

21<br />

22 const char ∗ getSymbol ( ) ;<br />

23 void changeSymbol ( const char ∗ symbol ) ;<br />

24 } ;<br />

25<br />

26<br />

27 #endif // memory game card h<br />

Ganz bewusst wurde hier gleich der richtige Weg e<strong>in</strong>geschlagen, e<strong>in</strong>e Klasse<br />

<strong>in</strong> e<strong>in</strong>em Header File zu deklarieren und die Def<strong>in</strong>ition <strong>in</strong> e<strong>in</strong> eigenes cpp<br />

File zu verlegen, anstatt alles geme<strong>in</strong>sam <strong>in</strong> e<strong>in</strong> File zu verpacken. Um e<strong>in</strong>e<br />

Klasse verwenden zu können, muss dann nur noch der entsprechende Header<br />

<strong>in</strong>kludiert werden, wie wir weiter unten sehen werden. Wenden wir uns aber<br />

lieber den wichtigeren D<strong>in</strong>gen zu, die hier zu f<strong>in</strong>den s<strong>in</strong>d.<br />

In den Zeilen 14–24 sieht man, wie man e<strong>in</strong>e Klasse deklariert. Dies<br />

geschieht gleich, wie die Deklaration e<strong>in</strong>er Structure, nur dass statt des Keywords<br />

struct das Keyword class verwendet wird. Wir deklarieren hier also<br />

e<strong>in</strong>e Klasse MemoryGameCard, die genau unter diesem Namen als Datentyp <strong>in</strong><br />

Programmen verwendet werden kann. Wie das genau passiert und was dabei<br />

abläuft, wird später noch näher beleuchtet werden.<br />

Dass man <strong>in</strong> e<strong>in</strong>er Klasse Member-Variablen und Methoden deklarieren<br />

kann und dass dies gleich passiert, wie wir es bei e<strong>in</strong>er struct bereits kennen<br />

gelernt haben, versteht sich von selbst. Viel <strong>in</strong>teressanter s<strong>in</strong>d da schon<br />

die Zeilen 16 und 18. In diesen Zeilen werden durch die besonderen Labels<br />

protected: bzw. public: die Zugriffsrechte auf die e<strong>in</strong>zelnen Members<br />

(Variablen wie auch Methoden) def<strong>in</strong>iert. Für diese besonderen Labels ist<br />

auch der Name Access Specifiers gebräuchlich. Folgende Access Specifiers<br />

mit entsprechender Bedeutung s<strong>in</strong>d <strong>in</strong> C ++ def<strong>in</strong>iert:

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!