Warum geht sowas?
Übersicht

MacintoshBetreff: Warum geht sowas? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mir ist aufgefallen, das alle Variablen Pointer sind, nur das man das nicht sieht. warum ist das so?
z.B. Code: [AUSKLAPPEN] local b:string for local a:string = eachin(lol) if a = "lol" then b = a next Wenn ich jetzt b:string ändere wird auch a:string geändert. Was hat marc sich da ausgedacht? halte ich für äußerst merkwürdig. |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Irgendwie werde ich gerade aus deinen Aussagen nicht so ganz schlau.
Wie änderst du b? Dein Beispiel ist nämlich nicht lauffähig. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
Macintosh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ba angenommen ich habe einen Type "TAuto"
und ich habe 10 autos in einer liste. wenn ich mir ein auto in eine andere Variable "hole" Code: [AUSKLAPPEN] for auto:TAuto = eachin(autos) meinAuto = auto next und dann z.B. Code: [AUSKLAPPEN] meinAuto.speed = 6000
schreibe wird das auch bei dem Auto-objekt inder der liste übernommen, obwohl ich dieses nicht anspreche. Und das ist ne sache die eigentich nicht sein dürfte, da niwo steht das meinAuto nen pointer ist. |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nirgendswo wurde gesagt, dass es keine sind! ![]() Im Gegenteil: Jeder redet davon, dass es Referenzen sind. Referenzen zeigen, wie der Name anmuten lässt, auf etwas. Sie zeigen auf die Objekte. Und wenn du ein Objekt änderst, wirst du die Änderung überall spüren können, wo du dieses Objekt verwendest bzw wo du eine Referenz auf diese Objekt hast. Da hast du wohl etwas falsch verstanden. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
Macintosh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm achso... wie kann ich das unterbinde? muss ich extra kopiermethoden schreiben ?? | ||
![]() |
ComNik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eigentlich schon.
Du musst eine komplett neue Instanz und nicht eine Referenz auf eine vorhandene erzeugen. Dabei könnte New recht hilfreich sein. lg ComNik |
||
WIP: Vorx.Engine |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oder Du klonst die Objekte per Reflection, was dann einer 1:1 Kopie entspricht.
Es ist übrigens aus Performancegründen sehr sinnvoll dass nur Referenzen übergeben werden, da sonst unter Umständen riesige Dateimengen kopiert werden müssen. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group