AGB  ·  Datenschutz  ·  Impressum  







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

TObject = Object ?

Ein Thema von Neutral General · begonnen am 3. Jan 2006 · letzter Beitrag vom 31. Mär 2006
Antwort Antwort
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#1

Re: TObject = Object ?

  Alt 31. Mär 2006, 13:39
Zitat von jbg:
TObject is eine class und kein object. Die beiden Arten von "Klassen" sind nicht binärkompatibel. So liegt bei class die VMT immer an Offset 0, wohingegen bei object die VMT erst dann eingefügt wird, wenn die erste virtuelle Methode zum Objekt hinzukommt. Alle vorher definierten Felder verschieben also den Offset des VMT-Zeigers bei object. Die VMT ist bei class eine Metaklasse (beschreibt also die Klasse selbst). Dies ermöglicht die Nutzung von virtuellen Konstruktoren und virtuellen Klassenmethoden (Stichwort: TClass = class of TObject). Bei object wird die VMT ihrem Namen mehr gerecht, denn dort ist sie nur eine Tabelle der virtuellen Methoden (Virtual Method Table) mit einem zusätzlichen DMT-Zeiger (Dynamic Method Table).
Heißt das, dass ich ein Objekt (deklariert durch Txyz = Object) nicht erst über das .Create oder einen anderen Konstruktor erzeugen muss, sondern einfach eine Prozedur des Objekts ausführen kann? Oder hab ich das falsch verstanden?
  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 15:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz