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.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
ヨーロッパ
アジア太平洋地域
最寄りの営業オフィスへのお問い合わせ