PG2 - Programmieren C++ - SS 2009 - Übung 8 Erweitern der Vektor-Klasse aus Übung 5 - Umbau zu einer Template-Klasse, damit der Vektor mit verschiedenen Datentypen (int, float, double) rechnen kann. template class vector { private: int dim; T* values; public: ... }; - Implementierung aller Methoden in der Header-Datei vector.h, wegen dem Linking-Problem bei Templates - beim Ausgabe-Operator muß der Template-Parameter anders heißen als bei der Klasse selbst - bei ungültigen Rechenoperationen mit Vektoren unterschiedlicher Dimension soll eine Ausnahme geworfen werden ------------------------------------------------------------ Zusatzaufgabe: Versuchen Sie zu verstehen, was das folgende Programm berechnet: #include #include using namespace std; int main() { string name; unsigned int cc = 0; unsigned int by = 0; unsigned int value = 0; const unsigned int special = 2; const unsigned int normal = 5; cout << "Name: "; cin >> name; for (int i = 0; i < name.length(); i++) { by = (cc & 255) ^ name[i]; for (int b = 0; b < 8; b++) { by = (by >> 1) ^ (-(by & 1) & 0xedb88320); } cc = (cc >> 8) ^ by; } value = cc % (special * 2 + normal); if (value < normal) { value = value + special; } else { value = (value - normal) / 2; } cout << value << endl; system("Pause"); return 0; }