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.

168 9. Klassen <strong>in</strong> <strong>C++</strong><br />

9.1 Besonderheiten von Structures <strong>in</strong> <strong>C++</strong><br />

Aus Abschnitt 2.4.2 s<strong>in</strong>d Structures als Mittel zur Zusammenfassung von<br />

Daten zu e<strong>in</strong>em Aggregat-Datentypen bekannt. Es wurde auch bereits darauf<br />

h<strong>in</strong>gewiesen, dass sich noch mehr h<strong>in</strong>ter Structures versteckt, als dort<br />

behandelt wurde. Genau dieses Mehr möchte ich hier als Überleitung zum<br />

allgeme<strong>in</strong>en Konzept der Classes <strong>in</strong> C ++ verwenden. Sehen wir uns dazu<br />

gleich e<strong>in</strong> kle<strong>in</strong>es Beispiel an, das uns auf den Weg zu den Pr<strong>in</strong>zipien der<br />

OO Entwicklung <strong>in</strong> C ++ br<strong>in</strong>gt (struct_method_demo.cpp):<br />

1 // struct method demo . cpp − small demo , how methods can be<br />

2 // implemented f o r s t r u c t u r e s<br />

3<br />

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

5 #<strong>in</strong>clude < c s t r i n g><br />

6<br />

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

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

9<br />

10 struct Name<br />

11 {<br />

12 char ∗ f i r s t n a m e ;<br />

13 char ∗ last name ;<br />

14<br />

15 void i n i t ( const char ∗ f i r s t n a m e , const char ∗ last name ) ;<br />

16 void setFirstName ( const char ∗ f i r s t n a m e ) ;<br />

17 void setLastName ( const char ∗ last name ) ;<br />

18 const char ∗ getFirstName ( ) ;<br />

19 const char ∗ getLastName ( ) ;<br />

20 } ;<br />

21<br />

22 //−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−<br />

23 void Name : : i n i t ( const char ∗ f i r s t n a m e , const char ∗ last name )<br />

24 {<br />

25 i f ( ! f i r s t n a m e )<br />

26 f i r s t n a m e = 0;<br />

27 else<br />

28 {<br />

29 f i r s t n a m e = new char [ s t r l e n ( f i r s t n a m e ) + 1 ] ;<br />

30 strcpy ( f i r s t n a m e , f i r s t n a m e ) ;<br />

31 }<br />

32 i f ( ! last name )<br />

33 last name = 0;<br />

34 else<br />

35 {<br />

36 last name = new char [ s t r l e n ( last name ) + 1 ] ;<br />

37 strcpy ( last name , last name ) ;<br />

38 }<br />

39 }<br />

40<br />

41 //−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−<br />

42 void Name : : setFirstName ( const char ∗ f i r s t n a m e )<br />

43 {<br />

44 i f ( f i r s t n a m e )<br />

45 delete [ ] f i r s t n a m e ;<br />

46 i f ( ! f i r s t n a m e )<br />

47 f i r s t n a m e = 0;<br />

48 else<br />

49 {<br />

50 f i r s t n a m e = new char [ s t r l e n ( f i r s t n a m e ) + 1 ] ;<br />

51 strcpy ( f i r s t n a m e , f i r s t n a m e ) ;<br />

52 }

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!