gpt4 book ai didi

class - `Class of `类型声明的含义是什么?

转载 作者:行者123 更新时间:2023-12-03 15:04:42 28 4
gpt4 key购买 nike

在查看我的一段代码时,我陷入了如下的一条语句。

TMyObjectClass = TMyObject 类;

我有点困惑,不知道这句话是什么意思。由于 TMyObjectClass 在该语句上方没有声明。

TMyObject的声明如下:

TMyObject = 类(TObject)
私有(private)的
//一些私有(private)成员声明
民众
//一些公共(public)变量
结束;

所以,我的问题是这句话的含义是什么 TMyObjectClass = TMyObject 类;

以及TMyObjectClass如何工作?

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

最佳答案

这是一个Class Reference

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

TComponentClass = class of TComponent;

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

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

现在,因为 TComponent.Create虚拟,所以它以多态方式绑定(bind)。如果TComponentClassTButton,则调用TButton.Create。如果TComponentClassTPanel,则调用TPanel.Create。等等。

要认识到的最重要的一点是,所构造的类仅在运行时确定。请注意,许多语言缺乏此功能,尤其是 C++。

关于class - `Class of `类型声明的含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24604844/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com