类声明之间的差异

Wou*_*ick 14 delphi class type-declaration

声明新类类型的方法有很多种:

  1. TMyClass1 = TObject;
  2. TMyClass2 = type TObject;
  3. TMyClass3 = class end;
  4. TMyClass4 = class(TObject);
  5. TMyClass5 = class(TObject) end;

我的理解是,第3,4和5类是后代TObject,但不清楚1和2是如何不同的,以及3,4和5之间的差异是什么.

有什么不同吗?

Bar*_*lly 31

  • TMyClass1 只是一个别名 - 一个不同的名字 TObject
  • TMyClass2(是TObject我们称之为"类型类型")的强类型别名; 但是,将它与类一起使用是非常不寻常的,通常你会使用它Pointer来创建一个句柄类型或其他东西(参见例如在Windows.pas中如何使用它).
  • TMyClass3是一个类,隐含地从下降TObject,没有新成员.
  • TMyClass4是一个类,TObject使用简洁的语法显式降序,没有新成员.更常见的是,这用于标记类,其中类本身的唯一性是有趣的东西 - 通常用于Exception后代
  • TMyClass5是一个明确降序的类,TObject没有新成员.该TObject宣言是多余的,但它不会伤害任何东西,使之明确.