06.10.2013 Aufrufe

Kapitel 2 Matrizen in C++

Kapitel 2 Matrizen in C++

Kapitel 2 Matrizen in C++

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.

8 KAPITEL 2. MATRIZEN IN <strong>C++</strong><br />

1 matrix a(3); // 3 x 3 Matrix<br />

2<br />

3 a(1,2)=1;<br />

4 a [0][1]=2;<br />

se<strong>in</strong>. In der ersten Zeile wird e<strong>in</strong>e 3×3 Matrix deklariert, wobei an dieser Stelle genügend<br />

Speicherplatz reserviert werden soll. Zeile 3 zeigt e<strong>in</strong>en Zugriff auf das Matrixelement a12.<br />

Weiters wäre es wünschenswert, dass wir auch <strong>in</strong> “klassischer” C-Form a[ i ][ j ] auf das<br />

Matrixelement aij zugreifen können.<br />

Wir beg<strong>in</strong>nen nun mit der Implementierung der Matrixklasse. Zuerst öffnen wir zwei Dateien<br />

matrix.h und matrix.cc. matrix.h ist die header-Datei, <strong>in</strong> der die Klassendef<strong>in</strong>ition<br />

(sowie kürzere Klassenfunktionen) stehen sollen. In matrix.cc werden die längeren<br />

Klassenfunktionen ausprogrammiert.<br />

Im Folgenden soll angenommen werden, dass Sie die Grundkonzepte von Klassen <strong>in</strong> <strong>C++</strong><br />

kennen und wissen, wie Sie mehrere Dateien kompilieren und b<strong>in</strong>den können (z.B. unter<br />

Verwendung von Makefile).<br />

2.1.1 Grundelemente der Matrixklasse<br />

Beg<strong>in</strong>nen wir mit der Klasse matrix.h. Das Gerüst ist von der Form<br />

1 #ifndef matrix h<br />

2 #def<strong>in</strong>e matrix h<br />

3<br />

4 class matrix {<br />

5 public:<br />

6 matrix(<strong>in</strong>t n=0);<br />

7 ˜matrix();<br />

8<br />

9 double& operator() (<strong>in</strong>t i, <strong>in</strong>t j);<br />

10 double ∗operator[] (<strong>in</strong>t i);<br />

11<br />

12 <strong>in</strong>t size () const {return n; }<br />

13<br />

14 private:<br />

15 <strong>in</strong>t n;<br />

16 double ∗a;<br />

17 };<br />

18<br />

19 #endif<br />

Die Bedeutung der Zeilen ist wie folgt:

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!