gpt4 book ai didi

delphi - 为什么 TObject.AfterConstruction 和 BeforeConstruction 具有公共(public)可见性?

转载 作者:行者123 更新时间:2023-12-03 14:47:33 25 4
gpt4 key购买 nike

今天,当我必须重写 TObjectBeforeConstruction 方法时,我想到了一个非常简单的问题:

为什么 TObject 方法 AfterConstructionBeforeConstruction 具有 public 可见性?

我希望它们受到保护。他们不这样做的原因是什么?

我无法想象在不调用该类的构造函数或析构函数的情况下调用 AfterConstructionBeforeConstruction 的有效目的。你是吗?

最佳答案

上一个问题询问为什么其他一些方法是公共(public)的而不是 protected ,并且 the answer是它们在某些时候需要由未附加到该类的实用函数调用。

TObject.AfterConstruction 正是由这样一个实用函数 System._AfterConstruction 调用的。如果它受到(严格)保护,那么该独立函数将无法访问该方法。

所有 TObject 的方法都是公共(public)的。*我们或许可以找到基本原理来解释为什么每个方法都是公共(public)的,但在某个时刻,我怀疑底层的方法任何给定方法公开的原因是所有其他方法也是公开的。

一旦 Delphi 公开发布这些方法,任何对其可见性的降低都会有破坏现有代码的风险。

<小时/>

* 由于某种原因,GetDisposeCheckDispose 除外。与大部分 TObject 相比,它们相对较新。

关于delphi - 为什么 TObject.AfterConstruction 和 BeforeConstruction 具有公共(public)可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30121253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com