000
14.08.2002, 04:17 Uhr
Cer
|
Guten Abend.
Moeglicherweise bin ich nur muede, denn mir scheint, die Loesung liegt nahe. Trotzdem frag' ich mal, dachte ich mir und nachdem mir nichts einfiel, lieber nach:
Ich moechte eine Matrix-Klasse implementieren. Die Matrizen sind 4x4 Werte gross. Die einzelnen Werte sollten ueber den []-Operator ausgelesen werden koennen.
Beispiel: (FMat ist der Name der Klasse)
C++: |
FMat m; float t = m[1][3];
|
Das funktioniert leider nicht, da sich der Operator auf diese Weise nicht schachteln lassen will, denn - soweit ich weiss - sieht der "endgueltige" Funktionsaufruf aus dem Beispiel oben so aus: m.operator [](1).operator [](3)
Das ginge ja noch irgendwie, sofern der Operator eine Referenz auf *this zurueckliefert, nur liefert der Ausdruck dann logischerweise nicht den gewuenschten Wert aus der Matrix zurueck. Wuerde der Operator einen float zurueckliefern, funktioniert es mit dem Verschachteln natuerlich nicht.
Hm. Gibt es ueberhaupt eine Moeglichkeit den Kram so zu implementieren, wie ich es dort vorhabe?
Edit: Ach, ja. Wie soll denn sowas wie m[1][3] = s funktionieren? Und wie funktioniert das, wenn man den Operator nur "einmal" (m[1] = s) benutzen wuerde? Sollte er dann eine Referenz auf *this zurueckliefern und dann wird s irgendwie mit einem Konstruktor von FMat umgewandelt oder wie?
Danke. -- -C Dieser Post wurde am 14.08.2002 um 04:26 Uhr von Cer editiert. |