首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi class of. 类的类 及 类的方法什么意思解决思路

2012-03-30 
delphi class of.. 类的类 及 类的方法什么意思class of...类引用 和 class functiong/procedure...有什么

delphi class of.. 类的类 及 类的方法什么意思
class of...类引用 和 class functiong/procedure...
有什么用???
什么时候用???

[解决办法]
上午LZ不是发了一个帖子么?才给了五分,关于class of书上有祥细介绍。

引用里面的原话:在程序编译时期,想要利用类别名称或特件来呼叫类别方法。或虚拟建构函式,可是却又不知道类别或物件的真正资料型别,这时候类别参考就非常有用了。
[解决办法]
我才得蛋分,我不回了
[解决办法]
参见《Inside VCL》。。。。。。。
[解决办法]

探讨

啊 开开 大猩猩 大哥哥 你这次说个分数 我给你加

[解决办法]
System单元的TObject有如下方法:
function ClassType: TClass;

它就是获取对象的类类型,它的返回类型TClass就是class of TObject。

因为所有类都派生自TObject,所以所有对象都可以调用ClassType。比如:

procedure TForm1.Button1Click(Sender: TObject);
var
S: TStringList;
C: TClass;
begin
S := TStringList.Create;

C := S.ClassType;
ShowMessage(C.ClassName);//对话框会显示出来TStringList,相当于TStringList.ClassName

S.Free
end;


而C.ClassName调用的是TObject的类方法ClassName,原型:
class function ClassName: ShortString;
就是说不需要用实例化的对象去调用,直接用类去调用就行了;不过用对象调用也是可以的,因为对象空间也保存了类的VMT地址。
[解决办法]
用类调用形如:TStringList.ClassName
用对象调用形如:S.ClassName
[解决办法]
class of...类引用 和 class functiong/procedure...
有什么用??? ---可以不创建类实例,通过类名.名字
什么时候用??? --需要频繁调用的时候,而且不需要创建类实例的情况下
[解决办法]
探讨
上午LZ不是发了一个帖子么?才给了五分,关于class of书上有祥细介绍。

引用里面的原话:在程序编译时期,想要利用类别名称或特件来呼叫类别方法。或虚拟建构函式,可是却又不知道类别或物件的真正资料型别,这时候类别参考就非常有用了。

[解决办法]
我是这样理解的
类引用 : class of 相当于一种类型的类; 不需要创建实例;就可以直接调用;运行时期实际类型未知的类 时;
类的方法 : class function 在实例化前就可以直接调用(不在private区域)
[解决办法]
Delphi(Pascal) code
var  List: TStrings;  i: Integer;begin  List := TStringList.Create;  for i := 0 to 99 do List.Add(IntToStr(i));  Memo1.Lines := List;  List.Free;end;{   TStrings 类中包含了抽象方法, 但这些抽象方法在其子类 TStringList 中都得到了实现;  因此, 我们虽然定义的是 TStrings 类的变量, 却要通过 TStringList 来实现.  这里就有个问题, 我们直接使用 TStringList 不行吗? 为什么还要绕个弯?  我觉得是: 这样才更符合"多态"的思想吧;  仅就本例而言 Memo1.Lines 本身就是 TStrings 类型的, 这样可以避免类型冲突. 举例说明:}
[解决办法]
类的类,让程序可以动态切换类
没有它,程序只可以动态切换对象

热点排行