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.

10.2 Das DDD 273<br />

52 ∗ As i s the s p e c i f i c a t i o n the program name has <strong>in</strong>dex 0<br />

53 ∗ and the arguments s t a r t with <strong>in</strong>dex 1 .<br />

54 ∗ @param arg The argument s t r i n g as given <strong>in</strong> the commandl<strong>in</strong>e<br />

55 ∗/<br />

56 virtual void argumentNotification ( u<strong>in</strong>t32 <strong>in</strong>dex , const void ∗ arg )<br />

57 {<br />

58 switch ( <strong>in</strong>dex )<br />

59 {<br />

60 case ROW DEF INDEX:<br />

61 num rows = ∗( static cast(arg ) ) ;<br />

62 break ;<br />

63 case COL DEF INDEX:<br />

64 num cols = ∗( static cast(arg ) ) ;<br />

65 break ;<br />

66 default :<br />

67 break ;<br />

68 }<br />

69 }<br />

70<br />

71 /∗ Returns the number of rows as s e t from the commandl<strong>in</strong>e<br />

72 ∗ @return The value of the rows−parameter<br />

73 ∗/<br />

74 virtual u<strong>in</strong>t32 getRows ( )<br />

75 {<br />

76 return ( num rows ) ;<br />

77 }<br />

78<br />

79 /∗ Returns the number of columns as s e t from the commandl<strong>in</strong>e<br />

80 ∗ @return The value of the c o l s−parameter<br />

81 ∗/<br />

82 virtual u<strong>in</strong>t32 getCols ( )<br />

83 {<br />

84 return ( num cols ) ;<br />

85 }<br />

86 } ;<br />

87<br />

88<br />

89 #endif // memory commandl<strong>in</strong>e arg handler h<br />

10.2.8 Commandl<strong>in</strong>eHandl<strong>in</strong>g<br />

Um das Kapitel des Argument Handl<strong>in</strong>gs abzurunden, werfen wir e<strong>in</strong>en Blick<br />

auf die Klasse Commandl<strong>in</strong>eHandl<strong>in</strong>g. Diese Klasse ist dafür verantwortlich,<br />

die Argumente aus der Commandl<strong>in</strong>e entgegenzunehmen und an die entsprechende<br />

Instanz e<strong>in</strong>es Argument Handlers weiterzuleiten. Um das Handl<strong>in</strong>g<br />

der Commandl<strong>in</strong>e möglichst offen und wiederverwendbar zu gestalten, implementiert<br />

die hier def<strong>in</strong>ierte Klasse Commandl<strong>in</strong>eHandl<strong>in</strong>g folgendes Schema:<br />

• Jedes e<strong>in</strong>zelne Argument, das e<strong>in</strong> Programm erwartet, wird explizit deklariert.<br />

• E<strong>in</strong>e solche Deklaration enthält den Index des erwarteten Arguments, den<br />

Typ, der erwartet wird und den Handler, der für das Argument schlussendlich<br />

verantwortlich ist.<br />

• Nachdem alle erwarteten Argumente deklariert wurden, wird die Commandl<strong>in</strong>e<br />

an das Handl<strong>in</strong>g übergeben und entsprechend ausgewertet. Für<br />

alle zuvor deklarierten Argumente, die auf der Commandl<strong>in</strong>e spezifiziert<br />

wurden, wird der entsprechend registrierte Handler aufgerufen.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!