PG2 - Programmieren C++ - SS 2009 - Übung 7 Fragen zur Wiederholung 1. Was ist der Unterschied zwischen einer Klasse und einer Instanz? 2.1 Was ist "this"? 2.2 Schreiben Sie die folgende Methode ohne Verwendung von "this". void setValue(int value) { this->value = value; } 3.1 Welche Ausgabe liefert die folgende rekursive Funktion. void f(int i) { if (i > 0) { f(i - 1); printf("%d ", i); } } 3.2 Schreiben Sie die Funktion iterativ, ohne Rekursion. 4.1 Gegeben sei die folgende Klasse: class Geld { private: int wert; public: Geld(int); void setWert(int); int getWert(void); }; 4.2 Impementieren Sie den Ausgabe-Operator, damit Objekte der Klasse durch den folgenden Befehl ausgegeben werden können: cout << geld; -------------------------------------------------------------------------------- 5. Zusatzaufgabe: Implementieren Sie eine Klasse Matrix, die analog zu den Klassen Complex und Vector das Rechnen mit Matrizen ermöglicht. - bei einer Matrix soll im Konstruktor die Anzahl Zeilen und die Anzahl Spalten festgelegt werden - durch Setter/Getter-Methoden sollen die Werte der Matrix eingetragen und ausgelesen werden - C/C++ kann keine mehrdimensionalen Felder mit vollständig dynamischer Größe verwalten, alle Dimensionen außer der ersten müssen fest sein, deshalb müssen die Werte der Matrix durch "Tricks" im Speicher abgelegt werden (Tipp: eindimensionales Feld, Zeilen/Spalten-Index immer in linearen Index umrechnen, oder: Zeiger-auf-Zeiger mit mehreren Feldern) http://www.cplusplus.com/doc/tutorial/arrays/ "pseudo-multidimensional array" http://www.devx.com/tips/Tip/33488 - Implementieren Sie Methoden zum Rechnen: Addition, Subtraktion, Matrizenmultiplikation, auch mit Skalaren - Versuchen die Operatoren () und [] zu überladen, um auf die Elemente der Matrix ohne die Getter/Setter-Methoden zuzugreifen