簡體   English   中英

為什么TObject.AfterConstruction和BeforeConstruction具有公眾可見性?

[英]Why do TObject.AfterConstruction and BeforeConstruction have public visibility?

今天,當我不得不重寫TObjectBeforeConstruction方法時,我想到了一個非常簡單的問題:

為什么TObject方法AfterConstructionBeforeConstruction具有public可見性?

我希望他們受到protected 他們不是的原因是什么?

我無法想象在沒有調用該類的構造函數或析構函數的情況下調用AfterConstructionBeforeConstruction的有效目的。 你呢?

之前的一個問題是為什么其他一些方法是公開的而不是受保護的, 答案是它們在某些時候需要被沒有附加到類的實用函數調用。

TObject.AfterConstruction只由這樣的實用函數System._AfterConstruction 如果它(嚴格)受到保護,那么該獨立函數將無法訪問該方法。

TObject 所有方法都是公開的。*我們可能找到解釋為什么每個方法都是公開的理由,但在某個時刻,我懷疑任何給定方法公開的根本原因是所有其他方法也是公開的。

一旦Delphi與這些方法公開發布,其可見性的任何降低都有可能破壞現有代碼。


*由於某些原因, GetDisposedCheckDisposed除外。 TObject的大部分相比,它們相對較新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM