002
14.08.2006, 17:47 Uhr
Yadgar
|
High!
Zitat von 0xdeadbeef: |
Allerdings würd ich im Zweifel ne darauf zugeschnittene Exception-Klasse schmeißen anstelle eines einfachen strings. Der Zuweisungsoperator sieht auch sinnvoll aus - haste vielleicht ein Hauptprogramm dazu, das schief geht, damit ich den Fehler nachvollziehen kann?
|
Das ist im Moment auch nicht mehr das Problem, sondern es tauchte ein neues auf:
C++: |
void FixedArray::operator += (const FixedArray f2) { #ifdef TEST cout << "L" << (char)132 << "nge: " << length() << endl; cout << "L" << (char)132 << "nge des " << (char)129 <<"bergebenen Objekts: " << f2.length() << endl; #endif if (!diffLengths(f2)) { cout << "FixedArray-Objekte unterschiedlicher Gr" << (char)148 << char(225) << "e k" << (char)148 << "nnen nicht addiert werden!"; exit (1); } int i=0; do { wert[i]+=f2.wert[i]; i++; } while (i<dim);
return *this; }
|
Die Operatorfunktion bekommt ein zweites Objekt übergeben, falls das Präprozessorflag TEST gesetzt ist, wird zur Kontrolle (denn da gibt es NOCH ein Problem, zu dessen Lösung ich bis jetzt noch gar nicht durchgestoßen bin) die Anzahl der Elemente beider beteiligter Elemente angezeigt (FixedArray::length()). Diese Funktion ist trivial, sie besteht lediglich aus return dim;. Dummerweise bekomme ich aber, sobald ich das dim des übergebenen Files auslesen will, die Fehlermeldung
passing `const FixedArray' as `this' argument of `int FixedArray::length()' discards qualifiers
Ist es prinzipiell nicht möglich, aus einer Methode heraus eine zweite Methode für ein anderes Objekt als das der aufrufenden Methode zugeordnete Objekt aufzurufen?
Bis bald im Khyberspace!
Yadgar -- Flagmaker - ein Programmier-Blog |