类型声明的“类”是什么意思?

AB

在执行我的代码之一时,我陷入了如下一条语句。

TMyObjectClass = class of TMyObject;

我有些困惑,想知道这句话的含义是什么。TMyObjectClass在声明上方没有声明。

并且TMyObject具有如下声明:

TMyObject = class(TObject) private //some private member declaration Public // some public variables end;

所以,我的问题是该陈述的含义是什么 TMyObjectClass = class of TMyObject;

以及如何TMyObjectClass运作?

我对Delphi有点陌生,所以请帮助我对这些类型的声明和解决方法有所了解。

戴维·赫弗南

这是一个类参考

它们用于处理元类。典型的例子是Delphi流框架,它使用

TComponentClass = class of TComponent;

这允许动态绑定到虚拟构造函数。TComponent构造函数virtual流框架需要实例化从派生的类TComponent它是这样的:

var
  ComponentClass: TComponentClass;
  Component: TComponent;
....
ComponentClass := GetComponentClassSomehowDoesntMatterHow;
Component := ComponentClass.Create(Owner);

现在,由于TComponent.Createis virtual,这是以多态方式绑定的。如果TComponentClassTButton,则TButton.Create称为。如果TComponentClassTPanel,则TPanel.Create称为。等等。

要实现的最重要的事情是,仅在运行时确定构造的类。请注意,许多语言都缺乏此功能,尤其是C ++。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

方括号在类型声明中是什么意思?

来自分类Dev

此类型声明中的{0:T}是什么意思?

来自分类Dev

这个Scala类型参数声明是什么意思?[A:B]

来自分类Dev

声明窗口小部件类型之后是什么意思?

来自分类Dev

方括号在类型声明中是什么意思?

来自分类Dev

[+ A]在Scala类声明中是什么意思?

来自分类Dev

这个c ++类声明是什么意思?

来自分类Dev

<T?>在类声明中是什么意思?

来自分类Dev

类声明前的方括号是什么意思?

来自分类Dev

该类声明是什么意思?

来自分类Dev

此属性声明是什么意思?

来自分类Dev

Haskell数据声明是什么意思

来自分类Dev

以下声明是什么意思?

来自分类Dev

该类声明是什么意思?

来自分类Dev

类型“ char(&(...))[2]”是什么意思?

来自分类Dev

类型前面的“ ^”是什么意思?

来自分类Dev

Rust类型的“&”号是什么意思?

来自分类Dev

使用“类型”是什么意思

来自分类Dev

在Haskell中,“ +”的类型是什么意思

来自分类Dev

Ss类型是什么意思?

来自分类Dev

cv :: Scalar类型是什么意思?

来自分类Dev

“同态映射类型”是什么意思?

来自分类Dev

Ss类型是什么意思?

来自分类Dev

CONFIGRET返回类型是什么意思?

来自分类Dev

::在类签名中是什么意思?

来自分类Dev

“非法类文字”是什么意思?

来自分类Dev

“类不是对象”是什么意思?

来自分类Dev

“卸载类”是什么意思?

来自分类Dev

::在类签名中是什么意思?