C++ Builder 参考手册 ➙ System ➙ TObject ➙ DisposeOf
头文件:#include <systobj.h>
命名空间:System
函数原型:
void __fastcall DisposeOf(void);
System::TObject::DisposeOf 是 System::TObject 的成员函数,强制销毁对象。
- 桌面版本的 DisposeOf 和 Free 相同,桌面版本的 TObject 没有 RefCount 和 Disposed 属性;
- 移动版本的 TObject 额外有 RefCount 和 Disposed 属性用于 ARC 内存管理,虽然调用了析构函数,但是 RefCount 不等于 0 不会释放内存,而 DisposeOf 就是强制销毁对象:RefCount 清零,Disposed 等于 true,并且释放内存。
以下引用帮助里面的描述:
根据 Delphi 编译器,DisposeOf 有两个不同版本:
- 桌面版本 (DCC32, DCC64, DCCOSX) 和 Free 相同;
- 移动版本 (DCCIOS32, DCCIOSARM) 有虽然析构函数和桌面版本调用次数一样,但是内存管理会根据 ARC 机制 (Automatic Reference Counting mechanism) 确定是否需要释放占用的资源。
参考:
- System::TObject::Free
- System::TObject::FreeInstance
- System::TObject::NewInstance
- System::TObject
- VCL 类继承关系
C++ Builder 参考手册 ➙ System ➙ TObject ➙ DisposeOf