#include <iostream>using namespace std;template <class T, int n> // T kann ein beliebiger Typ seinclass Array{ private: T array[n]; // Array von Typ 'T' mit 'n' Plaetze public: int get_size() const { return n; } T& operator[] (int i);};template <class T, int n>T& Array<T,n>::operator[] (int i) // damit man mit dem neuem Objekt mit [] hantieren kann{ if(i < 0 || i >= n) { cout << "Array-Ueberlauf!!!\n"; exit(1); } return array[i];}int main(void){ Array<char, 20> str1; // einen Char-Array mit 20 Zeichen 'freischalten' Array<int, 5> integers; cout << "Wie heissen Sie: "; cin.getline(&str1[0], str1.get_size() ); // einlesen ... cout << "Hallo "; for(int i=0; str1[i] != '\0'; i++) { cout << str1[i]; // anders kann man es nicht ausgeben wenn man es } // oben nicht so mit 'operator' festgelegt hat cout << '\n'; for(int i=0; i < integers.get_size(); i++) { cout << i+1 << ". Wert: "; cin >> integers[i]; } cout << "Die Zahlen die eingegeben wurden ...\n"; for(int i=0; i < integers.get_size(); i++) { cout << i+1 << ". Wert: " << integers[i] << '\n'; } return 0;}