delphi中create的用法一直不是很清楚 有没有系统全面的介绍
2个回答
展开全部
Create是类的构造(constructor)函数,每个类都有构造函数,通过调它创建类的实例,比如:
var obj:TObject;
begin
obj:=TObject.Create;//创建
try
//使用....
finally
obj.free;//释放
end;
end;
当你写一个类,它会默认继承祖先类的构造函数,不过你可以把祖先的盖掉,加上自己的参数,比如:
TmyObj=Class(TObject)
public
constructor Create(const s:string);//覆盖祖先的构造函数
destructor Destroy;override;
end;
//...
constructor TmyObj.Create(const s:string);
begin
inherited;//调用祖先的构造
//处理自己的内容。。。
end;
每个类除了有构造函数,还有个析构函数(destructor),类释放的时候就会调用。只能简单的说这么多,还有不明白的找本基础的书看看吧
var obj:TObject;
begin
obj:=TObject.Create;//创建
try
//使用....
finally
obj.free;//释放
end;
end;
当你写一个类,它会默认继承祖先类的构造函数,不过你可以把祖先的盖掉,加上自己的参数,比如:
TmyObj=Class(TObject)
public
constructor Create(const s:string);//覆盖祖先的构造函数
destructor Destroy;override;
end;
//...
constructor TmyObj.Create(const s:string);
begin
inherited;//调用祖先的构造
//处理自己的内容。。。
end;
每个类除了有构造函数,还有个析构函数(destructor),类释放的时候就会调用。只能简单的说这么多,还有不明白的找本基础的书看看吧
展开全部
Create是构造函数,Create函数是TObject就有了的
比如:
var a: TClassA;
a:= TClassA.Create;
a此刻实际上是获得了TClassA.Create返回的实例句柄,你可以认为此时a仍然只是一个变量,只不过a中是TClassA所创建的对象的地址.
如刘艺所说:这个a相当于一口锅的把柄,有了把柄你就可能随便操作这口锅.
如果单纯调用 TClassA.Create而不将它返回的句柄赋予某变量的话,那TClassA也会创建一个对象,只不过没办法去操作它而已,但它依然存在.
Create是一个特殊的类方法,一般用来在创建对象时,同时初始某些数据成员.
建议看看刘艺大作 面向对象编程思想 一书
比如:
var a: TClassA;
a:= TClassA.Create;
a此刻实际上是获得了TClassA.Create返回的实例句柄,你可以认为此时a仍然只是一个变量,只不过a中是TClassA所创建的对象的地址.
如刘艺所说:这个a相当于一口锅的把柄,有了把柄你就可能随便操作这口锅.
如果单纯调用 TClassA.Create而不将它返回的句柄赋予某变量的话,那TClassA也会创建一个对象,只不过没办法去操作它而已,但它依然存在.
Create是一个特殊的类方法,一般用来在创建对象时,同时初始某些数据成员.
建议看看刘艺大作 面向对象编程思想 一书
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询