Operator [][] überladen
-
wie man den Operator [] überlädt ist mir klar. Ich würde gerne wissen ob man auch [][] definieren kann. Nutzen möchte ich es in einer Matrix Klasse, wo ich die interne Speicherung vom Zugriff unabhängig gestalten möchte.
-
ich glaub nicht, dass das geht.
-
[][] kann man nicht überladen. Unmöglich ist es aber trotzdem nicht:
Zunächst wird der []-Operator überladen. Zurückgegeben wird ein Proxy-Objekt, welches ebenfalls den []-Operator überlädt. Dieser gibt dann das eigentliche Datum zurück.
-
anonymus schrieb:
[][] kann man nicht überladen. Unmöglich ist es aber trotzdem nicht:
Zunächst wird der []-Operator überladen. Zurückgegeben wird ein Proxy-Objekt, welches ebenfalls den []-Operator überlädt. Dieser gibt dann das eigentliche Datum zurück.
gibt es dafür ein Beispiel was ich mir anschauen könnte?
-
Ich geb einfach ein Objekt (oder eine Referenz, je nachdem) auf ein VecN Objekt zurück, das wiederum auch den Operator bereitstellt. Im Primzip "implizit" ein Proxy. Du kannst natürlich auch extra, nur für diesen Zweck, nen Proxy erstellen, wie anonymus vorgeschlagen hat.
-
Letzte Woche hat glaube ich jemand das gleiche gefragt. Ebenfallst mit einer Matrix und jemand hat da dann ein Beispiel dazu gegeben. Benutzt mal die Suche mit 'matrix'.
-
David_pb, was machst du eigentlich beruflich? Sorry für die Offtopic-Frage, dafür gibts von mir aber auch nen Link:
http://c-plusplus.net/forum/viewtopic-var-p-is-1624282.html#1624282
...Beispielimplementierung von volkard für einen solchen Proxy.
-
Frage an David_pb schrieb:
David_pb, was machst du eigentlich beruflich? Sorry für die Offtopic-Frage
Ich arbeit als Entwickler in nem kleinen Softwarehaus. :xmas1:
-
Frage an David_pb schrieb:
David_pb, was machst du eigentlich beruflich? Sorry für die Offtopic-Frage, dafür gibts von mir aber auch nen Link:
http://c-plusplus.net/forum/viewtopic-var-p-is-1624282.html#1624282
...Beispielimplementierung von volkard für einen solchen Proxy.Thx. Genau den habe ich gemeint. (war wohl doch länger her, als letzte Woche.:))