Delphi析构函数:继承调用后执行代码?
发布时间:2020-12-15 04:31:41 所属栏目:大数据 来源:网络整理
导读:Delphi中在析构函数中继承调用后执行代码真的没问题吗? 您可以在System.Classes中找到它: destructor TThread.Destroy;begin[...] inherited Destroy; FFatalException.Free;end; 我认为,在调用继承的Destroy方法之后访问实例成员是个坏主意. 解决方法 在
Delphi中在析构函数中继承调用后执行代码真的没问题吗?
您可以在System.Classes中找到它: destructor TThread.Destroy; begin [...] inherited Destroy; FFatalException.Free; end; 我认为,在调用继承的Destroy方法之后访问实例成员是个坏主意. 解决方法
在调用继承的析构函数之后执行代码是完全安全的,只要该代码不依赖于已被继承的析构函数销毁的内容.以同样的方式,在调用继承的构造函数之前执行代码是安全的,只要代码不依赖于在该继承的构造函数中实例化的任何内容.
但这肯定不是好风格.有些原因会导致您使用此类代码,但通常应将这些原因视为您设计中出现问题的原因. 在您给出的示例中,根本不需要以这种方式编写代码.在调用继承的析构函数之前,完全可以调用FFatalException.Free. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |