PG2 - Programmieren C++ - SS 2009 - Übung 5 Erweitern der komplexe Zahlen Klasse aus Übung 4 1. Klassenvariablen - implementieren sie eine (private) Klassenvariable "counter", welche die Anzahl der instanzierten Objekte der Klasse complex zählen soll - diese Variable soll im Konstruktor eines Objekts um 1 erhöht und im Destruktor um 1 erniedrigt werden - Hinweis: Klassenvariablen müssen ausserhalb der Klassendefinition wie globale initialisiert werden 2. Klassenmethoden - implementieren sie eine (public) Klassenmethode, die den Wert der Klassenvariable "counter" zurückgibt - testen sie die Implementierung im Hauptprogramm ------------------------------------------------------------ 3. Wiederholung der Klassenerstellung (zur eigenen Bearbeitung) - implementieren sie eine Klasse "vector" zum Rechnen mit Vektoren mit einer beliebigen Anzahl von Elementen, die konkrete Anzahl wird im Konstruktor übergeben - ein Vektor benötigt ein Attribut "dim" für die Dimension des aktuellen Vektors und ein Attribut "values", das die Werte des Vektors aufnimmt - "values" soll ein Array sein, dem im Konstruktor des Objekts dynamisch Speicher zugewiesen wird, der Speicher muss im Destruktor wieder freigegeben werden dim = x; values = new float[dim]; - Getter/Setter-Methoden um mit den Werten des Vektors zu arbeiten //n-tes Element des Vektors auf Wert v setzen void set(const int n, const float v); //n-tes Element des Vektors zurückgeben float get(const int n); - implementieren sie den Kopierkonstruktor und den Ausgabe-Operator für die Klasse "vector" als friend-Funktion - Rechenmethoden: add() Addition eines andren Vektors sub() Subtraktion eines anderen Vektors mul() Vektor mit Skalar multiplizieren skalar() Skalarprodukt zweier Vektoren length() Gibt die Länge (Betrag) des Vektors zurück normal() Normalisiert den Vektor auf Länge 1 - je nach Rechenoperation muß zuerst die Dimension der angegebenen Vektoren verglichen werden - überladen sie für jede der Rechenmethoden den passenden Operator - testen sie die Klasse "vector"