Ich hab ein Objekt vom Typ T3DObjekt, was in meiner 3D Welt einzigartig sein soll, und ein Objekt vom Typ T3DModell, welches die 3D Daten lädt und anzeigt. Da es sinnlos ist wenn man mehrer 3D Modelle der gleichen Art braucht die Daten mehrmals zu laden, soll jedes T3DObjekt nur eine Referenz auf ein 3DModell haben. Bis jetzt hab ich es so gelöst, ich weiß nur nicht ob das Modell jetzt kopiert wird oder nur die Referenz übergeben :
procedure T3DObjekt.Set3DModell(const a3DModell : T3DModell ); begin m3dmodell:=a3dmodell; end; end;
Delphi sieht Klasseninstanzen als Pointer, also wird das Objekt nicht kopiert. Das heißt KlassenInstanz=Pointer, bei Records geht das allerdings nicht so einfach, da Delphi diese selber erstellt und löscht, dort wird der Inhalt kopiert.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Ja, wird eindeutig nur als Referenz behandelt. Generell werden Objekte immer als Referenzen übergeben, kopiert und sonstwas. Wenn man ein Objekt klonen will, muss man dies Manuell tun. Viele RTL-Klassen vereinfachen dies über die Methode Assign (die zuerst in TPersistent definiert wird).
greetings
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.