Matrix-Klasse mit View- und ConstView-Funktionalität ==================================================== Durch ein weitere Attribut `isConst` soll intern festgehalten werden, ob Matrix-Elemente verändert werden dürfen. Falls nicht, dann soll der Aufruf einer nicht als `const` dekalierten Methode oder Operator eine Assertion erzeugen. Aufgaben ======== - Ergänzt die Vorlage. - Fügt Tests ein: Wenn zum Beispiel in einer Funktion wie `print` der Zugriffsoperator zum Verändern eines Elementes verwendet wird, dann muss eine Assertion ausgeführt werden. ==== CODE (type=cc) ============================================================ #include #include struct Matrix { Matrix(long numRows, long numCols); Matrix(const Matrix &X, bool takeView=false); Matrix(Matrix &X, bool takeView=false); ~Matrix() void operator=(const Matrix &X); const double & operator()(long i, long j) const; double & operator()(long i, long j); long numRows, numCols; double *data; bool isView; bool isConst; }; void init(Matrix &A, long offset=1) { for (long i=0; i doc:index back -> doc:session14/page03 next -> doc:session14/page05