[英]Problems to redirect the TObject.AfterConstruction to other procedure
[英]Why do TObject.AfterConstruction and BeforeConstruction have public visibility?
今天,當我不得不重寫TObject
的BeforeConstruction
方法時,我想到了一個非常簡單的問題:
為什么TObject
方法AfterConstruction
和BeforeConstruction
具有public
可見性?
我希望他們受到protected
。 他們不是的原因是什么?
我無法想象在沒有調用該類的構造函數或析構函數的情況下調用AfterConstruction
或BeforeConstruction
的有效目的。 你呢?
之前的一個問題是為什么其他一些方法是公開的而不是受保護的, 答案是它們在某些時候需要被沒有附加到類的實用函數調用。
TObject.AfterConstruction
只由這樣的實用函數System._AfterConstruction
。 如果它(嚴格)受到保護,那么該獨立函數將無法訪問該方法。
TObject
所有方法都是公開的。*我們可能找到解釋為什么每個方法都是公開的理由,但在某個時刻,我懷疑任何給定方法公開的根本原因是所有其他方法也是公開的。
一旦Delphi與這些方法公開發布,其可見性的任何降低都有可能破壞現有代碼。
*由於某些原因, GetDisposed
和CheckDisposed
除外。 與TObject
的大部分相比,它們相對較新。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.