MATLAB 帮助中心
从 MATLAB 中释放 C++ 对象
clibRelease(cppObj)
clibRelease(cppObj) 从 MATLAB® 中释放 C++ 对象,使其无法访问。您可能调用 clibRelease 的情况有:
cppObj
clibRelease
C++ 库管理堆上对象的生存时间。
C++ 对象可以显式删除自身。
对于在 MATLAB 中通过类构造函数或 clib.array 类型创建的 C++ 对象,MATLAB 拥有并管理内存。不要对此类对象调用 clibRelease。
clib.array
示例
全部折叠
Myclass
此 C++ 库有用于创建和删除 Myclass 对象的函数。使用 clibRelease 函数管理已删除对象的内存。
使用以下语句创建头文件 header.hpp。
header.hpp
class Myclass{}; Myclass* createMyclass() { return new Myclass(); } void deleteMyclass(Myclass* myc) { delete myc; }
编译一个 Myclass 的接口。
clibgen.buildInterface('header.hpp','TreatObjectPointerAsScalar',true); addpath("header")
创建一个 Myclass 对象。
cppObj = clib.header.createMyclass
cppObj = Myclass with no properties.
调用 deleteMyclass 函数。对象 Myclass 仍保留在 MATLAB 工作区中。
deleteMyclass
clib.header.deleteMyclass(cppObj) whos
调用 clibRelease 以释放内存。
clibRelease(cppObj); cppObj
cppObj = handle to deleted Myclass
在 MATLAB 中创建的 C++ 对象,指定为句柄。释放底层 C++ 对象后,将无法再在 MATLAB 中进行访问,MATLAB 句柄 cppObj 将变为无效。如果再次从库中返回该对象,MATLAB 将创建一个句柄。
在 R2019a 中推出
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处