析构函数和构造函数。。。。

xiayule 2003-09-16 08:43:38
一个类最多可以有几个析构函数,析构函数和构造函数不太理解,郁闷ing....
help
...全文
95 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxpbuaa 2003-10-28
  • 打赏
  • 举报
回复
析构函数和构造函数都可以有任意多个,实现的方法就是重载。
一般的,不少类都有多个构造函数,而析构函数通常只有一个(即Destroy)。一般的没有必要设计多个析构函数。因为,Destroy是TObject的虚拟方法,所有子类覆盖Destroy并实现新的处理;所有子类也继承TObject.Free,Free内部调用Destroy。因此对象实际销毁时,通常直接调用Free而不是Destroy实现。但是并不是说构造函数不可以有多个。比如:

TMyClass = class
destructor Destroy(Info: String); reintroduce; overload;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

destructor TMyClass.Destroy(Info: String);
begin
ShowMessage(Info);
inherited Destroy;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
TMyClass.Create.Destroy('OK');
end;

————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
966126 2003-10-28
  • 打赏
  • 举报
回复
析构函数是在对象被释放的时候调用的,当然只能有1个
BlueComma 2003-10-28
  • 打赏
  • 举报
回复
我觉得最多只能有一个析构函数,不过我没有见到过那本书讨论这个问题,析构函数的意义在于释放对象,没有必要重载.
至于析构和构造函数不太理解 看你想理解什么了 简单点说构造函数就是分配内存 初始化对象 析构函数就是释放对象
wssqsh 2003-10-28
  • 打赏
  • 举报
回复
我也ing
Shiyl 2003-10-28
  • 打赏
  • 举报
回复
?
Shiyl 2003-09-16
  • 打赏
  • 举报
回复
gz

5,388

社区成员

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

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