C++ Builder 參考手冊(cè) ? System ? TObject ? CleanupInstance
頭文件:#include <systobj.h>
命名空間:System
函數(shù)原型:
void __fastcall CleanupInstance(void);
System::TObject::CleanupInstance 是 System::TObject 的成員函數(shù),清除長(zhǎng)字符串揣云、Variants蓝纲、接口變量等,把長(zhǎng)字符串置為 Empty囚似,Variant 置為 Unassigned 狀態(tài)咕幻。不要直接調(diào)用 CleanupInstance丈甸,會(huì)在銷毀實(shí)例的時(shí)候自動(dòng)調(diào)用糯俗。
以下是通過分析源碼得到的:
- TObject::FreeInstance 函數(shù)內(nèi)部調(diào)用了 CleanupInstance;
- 子類重載了 FreeInstance睦擂,需要調(diào)用父類的 FreeInstance 類釋放占用的資源得湘;
- 發(fā)現(xiàn)源碼里面有兩處子類重載 FreeInstance 沒有調(diào)用父類的 FreeInstance,而是調(diào)用的 CleanupInstance顿仇,再釋放自己占用的資源淘正,不建議這樣做摆马,除非這些函數(shù)內(nèi)部執(zhí)行情況都非常清楚;
- CleanupInstance 不是 virtual鸿吆,不要重載囤采。
參考:
- System::TObject::NewInstance
- System::TObject::FreeInstance
- System::TObject::InitInstance
- System::TObject::InstanceSize
- System::TObject
- VCL 類繼承關(guān)系
C++ Builder 參考手冊(cè) ? System ? TObject ? CleanupInstance