问一个关于类的问题!!!

webnumen 2003-04-06 10:04:09
TColumnFooterEh = class(TCollectionItem)
private
........
protected
.......
public
.......
published
.......
end

TColumnFooterEhClass = class of TColumnFooterEh;

请问TColumnFooterEhClass是继承TColumnFooterEh吗?
如果是,那我想请问
TColumnFooterEhClass = class of TColumnFooterEh;

TColumnFooterEhClass = class(TColumnFooterEh)
有什么不同?????
...全文
117 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
FrameSniper 2003-04-06
  • 打赏
  • 举报
回复
通过类引用类型的变量可以直接调用它所指的类的类方法

如Chechy所说,由于Create构造器是类方法,所以可以通过类引用类型变量直接调用

这种调用的效果和通过类名来调用是一样的
webnumen 2003-04-06
  • 打赏
  • 举报
回复
请你说详细点好吗?
FrameSniper 2003-04-06
  • 打赏
  • 举报
回复
TColumnFooterEhClass=class of TColumnFooterEh
定义的是一个类引用类型,也就是元类

而TColumnFooterEhClass=class(TColumnFooterEh)
定义的是一个派生于TColumnFooterEh的子类

类引用是类的类型,说白了就是指向类的VMT的指针类型
而后者只是一个子类,二者差了一个级别
chechy 2003-04-06
  • 打赏
  • 举报
回复
TColumnFooterEhClass是一个指向TColumnFooterEh类型的参考(或者是指针)
参考代码:
var
a: TColumnFooterEhClass;
b: TColumnFooterEh;


a := TColumnFooterEh;
b := a.Create();

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧