Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Was ist der Unterschied zwischen einem Enum auf Instanz- und Klassenebene? (https://www.delphipraxis.net/173938-ist-der-unterschied-zwischen-einem-enum-auf-instanz-und-klassenebene.html)

Der schöne Günther 25. Mär 2013 10:26

Delphi-Version: XE2

Was ist der Unterschied zwischen einem Enum auf Instanz- und Klassenebene?
 
Eine dumme Frage:

Was macht es für einen Unterschied, wenn ich in einer Klasse eine Typdefinition (enum) als Klassen- oder Instanz-Bestandteil deklariere:

Was wäre also der Unterschied zwischen

Delphi-Quellcode:
type TTMUReplyErrorType = (
   teError,
   teNonAcceptance,
   teUnknown,
   teTransmission,
   teWrongDeviceNumber,
   teNone
);
und
Delphi-Quellcode:
class var type TTMUReplyErrorType = (
   teError,
   teNonAcceptance,
   teUnknown,
   teTransmission,
   teWrongDeviceNumber,
   teNone
);

mjustin 25. Mär 2013 10:46

AW: Was ist der Unterschied zwischen einem Enum auf Instanz- und Klassenebene?
 
class var type ist mir neu.

Handelt es sich um eine Schwäche des Compilers? Das hier kompiliert in Delphi 2009:

Delphi-Quellcode:
type
  TClassVarTypeTest = class
  class var
  class var
  class var
  class var
    type
      TRecordWithinAClass = record
        SomeField: string;
      end;
    end;
Ich nehme daher an, dass das class var vor type keine Bedeutung hat.

DeddyH 25. Mär 2013 10:52

AW: Was ist der Unterschied zwischen einem Enum auf Instanz- und Klassenebene?
 
Etwas Lesestoff: Nested Types

Der schöne Günther 25. Mär 2013 11:09

AW: Was ist der Unterschied zwischen einem Enum auf Instanz- und Klassenebene?
 
Zitat:

Zitat von DeddyH (Beitrag 1208699)
Etwas Lesestoff: Nested Types

Zitat:

Nested types do not increase the size of the containing class. Creating an instance of the containing class does not also create an instance of a nested type. Nested types are associated with their containing classes only by the context of their declaration.
Dann ist ja alles klar :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:01 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