Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Zeiger auf eine Klasse

  Alt 11. Aug 2013, 15:11
Danke für eure Hilfe.
Ich habe jetzt mehrere Varianten probiert und habe festgestellt, dass ich in obigen Beispiel nur einen Syntaxfehler hatte

@NamenLozer: Nach deiner Meinung sollte ich Variante 3 nehmen (siehe Code), oder? In Bezug auf die Performance ist diese Variante doch schlecht, weil das komplette Array nochmals kopiert werden muss.
Edit: Variante 1 und 2 hingegen verändern direkt den Inhalt von "PointsRotor" ohne zusätzlichen kopiervorgang.
Du hast mich wohl missverstanden.

Delphi-Quellcode:
var
  A,B: array of integer;
begin
  SetLength(A, 3);
  A[0] := 1;
  A[1] := 2;
  A[2] := 3;

  writeln('A: ', A[0], ', ', A[1], ', ', A[2]);
  // => A: 1, 2, 3

  // REFERENZ
  B := A;

  writeln('B: ', B[0], ', ', B[1], ', ', B[2]);
  // => B: 1, 2, 3

  B[1] := 42;

  writeln('B: ', B[0], ', ', B[1], ', ', B[2]);
  // => B: 1, 42, 3

  writeln('A: ', A[0], ', ', A[1], ', ', A[2]);
  // => A: 1, 42, 3

  // KOPIE
  B := Copy(A, 0, length(B));

  B[0] := 2;
  B[1] := 5;
  B[2] := 7;

  writeln('B: ', B[0], ', ', B[1], ', ', B[2]);
  // => B: 2, 5, 7

  writeln('A: ', A[0], ', ', A[1], ', ', A[2]);
  // => A: 1, 42, 3
end.
Ist das Prinzip jetzt klar?

Geändert von Namenloser (11. Aug 2013 um 15:21 Uhr) Grund: typo
  Mit Zitat antworten Zitat