#include #include #include // Vorausdeklaration von CPoint class CPoint; class CPointErrors // Fehlerklasse Allgemein { }; // Public veerbte Klasse OutOfDimension class OutOfDimension: public CPointErrors { }; // Public veerbte Klasse DimensionMismatch class DimensionMismatch: public CPointErrors { }; class CPoint { public: CPoint(int); // Parametrisierter Konstruktor CPoint(const CPoint&); // Kopierkonstruktor double & operator[](int); // Indexoperator Überladung CPoint & operator=(const CPoint&); // Zuweisungsoperator ~CPoint(); // Destruktor void eingabe(); void ausgabe(); private: double *zahl; int odimension; }; CPoint::CPoint(int dimension) //Parametrisierter Konstruktor { if (dimension < 0 ) throw DimensionMismatch(); zahl = new double [dimension]; odimension = dimension; } CPoint::CPoint(const CPoint& quelle) //Kopier-Konstruktor { if(odimension < quelle.odimension) throw DimensionMismatch(); for(int i=0; i < quelle.odimension; i++) { zahl[i] = quelle.zahl[i]; } } double &CPoint::operator[](int index) // Indexoperatorüberladung { if(index < 0 || index >= odimension) throw OutOfDimension(); return(zahl[index]); } CPoint &CPoint::operator=(const CPoint &quelle) // Zuweisungsoperator-Überladung { if(this==&quelle) return (*this); if(odimension