Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#12

AW: Was ist eigentlich der Unterschied zwischen "type" und "type of"?

  Alt 12. Sep 2018, 16:14
Mit type of bekommst Du einen neuen Typ der nicht zum Original Kompatibel ist...
Kompatibel schon, aber sie sind unterscheidbar.

Du kannst die Tyen gegeneinander zuweisen,
aber bei Typprüfungen sind sie unterschiedlich, womit beim Übeladen der Compiler das trennen kann.



Ohne TYPE ist es ein Alias.
Delphi-Quellcode:
type
  B = A; // ein Alias für A ... also B gibt es für den Compiler nicht ... das wird sofort durch A ersetzt.
  C = type A; // neuer Typ mit eigener RTTI und A ls Vorfahre ... da intern gleich, sind sie weiterhin zuweisungskompatibel.
Du kannst das mit fast der Vererbung bei Objekten D = class(A); verleichen.

Das kann man auch für eine Weiterleitung verwenden.
Delphi-Quellcode:
//unitn

uses
  unitx;

type
  A = unitx.A;

{
  unitn.A
  unitx.A
}
Delphi-Quellcode:
uses
  unitn;

// A ist sihtbar, obwohl eigenlich in unix ist, was aber nicht im USES steht.
Wird gern verwedet, wenn Typen verschoben wurden. Ower wenn man die andere Unit nicht überall direkt einbinden will.
In der alten Unit die Weiterleitung (ein Alias mit dem selben Namen, aber in unterschiedlichen Namespaces) und schon ist auch über diese Unit der Typ veröffentlicht.
$2B or not $2B

Geändert von himitsu (12. Sep 2018 um 16:21 Uhr)
  Mit Zitat antworten Zitat