AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi abgeleitete Objekte wie Parent-Objekte verwenden
Thema durchsuchen
Ansicht
Themen-Optionen

abgeleitete Objekte wie Parent-Objekte verwenden

Ein Thema von messie · begonnen am 25. Mai 2007 · letzter Beitrag vom 25. Mai 2007
Antwort Antwort
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#1

abgeleitete Objekte wie Parent-Objekte verwenden

  Alt 25. Mai 2007, 09:07
Moin,

war nicht leicht eine sinnvolle Beschreibung des Problem zu finden.

Ich habe eine Objectklasse aus der ich eine weitere abgeleitet und mit zusätzlichen Variablen versehen habe:
Delphi-Quellcode:
  TObj_1 = class(TObject)
  TObj_2 = class(TObj_1)
Jetzt habe ich eine Routine, die ein TObj_1 erwartet, z.B.   procedure MachWasRichtig(input : TObj_1); Dieser Routine möchte ich ein TObj_2 übergeben, weil ich die zusätzlichen Informationen dort nicht benötige.
Ist das korrekt, dann  MachWasRichtiges(TObj_1(Obj_2)); zu verwenden? Es funktioniert zwar, aber ich bin mir nicht ganz sicher ob das auch richtig ist.

Grüße, Messie
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: abgeleitete Objekte wie Parent-Objekte verwenden

  Alt 25. Mai 2007, 09:10
der cast ist unnötig. Anstelle von
MachWasRichtiges(TObj_1(Obj_2)); kannst du auch einfach nur
MachWasRichtiges(Obj_2); schreiben. Denn Obj2 ist ja von TObj1 abgeleitet.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#3

Re: abgeleitete Objekte wie Parent-Objekte verwenden

  Alt 25. Mai 2007, 09:20
Ja aber Obj_2 hat ja eine größere Speichermaske. Wird die ohne Cast korrekt zugeschnitten?

Grüße,Messie
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#4

Re: abgeleitete Objekte wie Parent-Objekte verwenden

  Alt 25. Mai 2007, 09:32
Zitat von messie:
Ja aber Obj_2 hat ja eine größere Speichermaske. Wird die ohne Cast korrekt zugeschnitten?
Delphi hat keine Mehrfachvererbung, und dadurch werden solche Dinge zu einem no-brainer.

TObject1 hat meinetwegen 2 Felder, eins an offset 8 und eins an 12. Insgesamt ist eine Instanz davon vllt 16 bytes groß.
TObject2 erbt von Tobject1 und damit auch genau diese Struktur, alles weitere was hinzugefügt wird, landet hinten dran.

Wenn ich also das erste Feld von TObject1 auslesen will kann ich einfach 4 Bytes von (self^ + 8 ) auslesen.
Dabei ist es also egal ob die Instanz dahinter TObject1 oder TObject2 ist.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  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 22:11 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