AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Referenz auf den Erzeuger... [erledigt]

Ein Thema von Bomberbb · begonnen am 22. Nov 2007 · letzter Beitrag vom 23. Nov 2007
Antwort Antwort
Bomberbb

Registriert seit: 23. Sep 2003
227 Beiträge
 
#1

Referenz auf den Erzeuger... [erledigt]

  Alt 22. Nov 2007, 18:34
Hallo,

ich übe mich an der oop unter Delphi. Nun habe ich ein Problem. Ich will in Objekte den Erzeuger speichern. Momentan mache ich das so, wie in dem Mustercode hier:
Delphi-Quellcode:
tVater = Class
  Protected
    Soehne : tObjectList;
  Private
  Public
    Name:String;
    constructor Create(einName:String);
    function Geburt: tSohn;
  End;
  
tSohn = Class
  Protected
    Vater:tVater:
  Private
  Public
    constructor Create(einVater : tVater);
    Function GetVater: tVater;
  End;
  
constructor tVater.Create(einName:String);
Begin
  Name:=EinName;
End;
  
function tVater.Geburt: tSohn;
Begin
  Result:=tSohn.Create(self);
End;

constructor tSohn.Create(einVater : tVater);
Begin
  Vater:=einVater;
End;
    
Function tSohn.GetVater: tVater;
Begin
  Result:=Vater;
end;



   Vater:=tVater.Create;
   Sohn:=Vater.Geburt;
   showmessage(Sohn.GetVater.Name);

Meine Frage ist, kann ich das ganze auch als Referenz machen???
Ich hab die Befürchtung, dass ich zu viel Speicher belege. Denn in meinem Beispiel ist die Klasse Vater sehr groß und die Objekte
vom typ tSohn sehr zahlreich. Und wenn ich nun in jedem Sohn den Vater in Wertsemantik vorhalte...

Ich hoffe, ich hab nach einem langen Arbeitstag mein Problem noch deutlich Darstellen können.

[edit=sakura] Buchstabendreher im Titel korrigiert. Mfg, sakura[/edit]
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Refernez auf den Erzeuger...

  Alt 22. Nov 2007, 18:38
Moin Bomber,

Zitat von Bomberbb:
Meine Frage ist, kann ich das ganze auch als Referenz machen???
Du übergibst ja nur die Referenz.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Bomberbb

Registriert seit: 23. Sep 2003
227 Beiträge
 
#3

Re: Refernez auf den Erzeuger...

  Alt 22. Nov 2007, 18:49
Da hakts bei mir noch ein wenig...

ich habe doch in tSohn eine Eigenschaft von Typ tVater.
Das heißt doch dass jeder Sohn ein Objekt vom Typ tVater enthält?
Müsste das, wenn ich das als Referenz machen will, nicht ein Object vom typ ^tVater sein?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Refernez auf den Erzeuger...

  Alt 22. Nov 2007, 19:06
Moin Bomber,

nehmen wir mal ein Beispiel:

Delphi-Quellcode:
var
  LVater : TVater;

begin
  LVater := TVater.Create;
  //...
end;
nach dem Create enthält LVater eine Referenz auf das erzeugte Objekt.
Objekte sind immer Pointer (Zeiger) auf die Instanz einer Klasse.
Durch Compilermagic kann man sich aber bei Zugriffen das explizite Dereferenzieren sparen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Bomberbb

Registriert seit: 23. Sep 2003
227 Beiträge
 
#5

Re: Refernez auf den Erzeuger...

  Alt 22. Nov 2007, 19:16
Ich glaube ich habs so weit verstanden. Hoffe ich... Ich programmiere nun schon einige Zeit mit Delphi aber so mir diesen Geschichten haperts halt noch ein wenig... Refrenz, @object, ^object, pchar(object)... weiß ich auch nicht immer so... Gibt es da was im Netz, wo man das ganze mal nachlesen kann???
  Mit Zitat antworten Zitat
Bomberbb

Registriert seit: 23. Sep 2003
227 Beiträge
 
#6

Re: Refernez auf den Erzeuger...

  Alt 23. Nov 2007, 10:00
Hab mir das nochmal durch den Kopf gehen lassen (nach dem Ausschlafen).

Ist das richtig, wenn ich unter Delphi behaupte Objekte werden als Verweise verwaltet und Basistypen als Werte???
Wenn ja, dann wären mir nun schon so ein oder zwei Lichter aufgegangen...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Refernez auf den Erzeuger...

  Alt 23. Nov 2007, 10:21
Ja die (Objekt-)Variablen sind Referenzen (Zeiger) auf die Objekte.
Markus Kinzler
  Mit Zitat antworten Zitat
Bomberbb

Registriert seit: 23. Sep 2003
227 Beiträge
 
#8

Re: Referenz auf den Erzeuger...

  Alt 23. Nov 2007, 10:32
Besten Dank!!!

nun versethe ich auch einige andere Problematiken...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz