C++ Builder 参考手册 ➙ System ➙ TObject ➙ CleanupInstance
头文件:#include <systobj.h>
命名空间:System
函数原型:
void __fastcall CleanupInstance(void);
System::TObject::CleanupInstance 是 System::TObject 的成员函数,清除长字符串、Variants、接口变量等,把长字符串置为 Empty,Variant 置为 Unassigned 状态。不要直接调用 CleanupInstance,会在销毁实例的时候自动调用。
以下是通过分析源码得到的:
- TObject::FreeInstance 函数内部调用了 CleanupInstance;
- 子类重载了 FreeInstance,需要调用父类的 FreeInstance 类释放占用的资源;
- 发现源码里面有两处子类重载 FreeInstance 没有调用父类的 FreeInstance,而是调用的 CleanupInstance,再释放自己占用的资源,不建议这样做,除非这些函数内部执行情况都非常清楚;
- CleanupInstance 不是 virtual,不要重载。
参考:
- System::TObject::NewInstance
- System::TObject::FreeInstance
- System::TObject::InitInstance
- System::TObject::InstanceSize
- System::TObject
- VCL 类继承关系
C++ Builder 参考手册 ➙ System ➙ TObject ➙ CleanupInstance