【MQL4定数】オブジェクトのポインタ定数(ENUM_POINTER_TYPE)

【辞書】MQLリファレンス

オブジェクトのポインタ定数(ENUM_POINTER_TYPE)

オブジェクトのポインタ定数(ENUM_POINTER_TYPE)は、オブジェクトのポインタの種類を確認するための定数です。

例えば、オブジェクトがどのように作成されたのかを確認したいときに使われます。

オブジェクトのポインタ定数は、以下の関数の戻り値として使います。

  • CheckPointer関数:オブジェクトのポインタの種類を確認する関数

オブジェクトのポインタ定数(ENUM_POINTER_TYPE)

定数説明
POINTER_INVALID不正なポインタ
POINTER_DYNAMICnew演算子で作成されたオブジェクトポインタ
POINTER_AUTOMATIC自動的に作成されたオブジェクトポインタ

オブジェクトのポインタ定数(ENUM_POINTER_TYPE)の使い方

主に、CheckPointer関数の戻り値として使用されます。

例えば、以下のように使用します。

//適当なクラスを作成
class CItem{

};

//+------------------------------------------------------------------+
//| 初期化                         
//|------------------------------------------------------------------|
void OnInit(){
    //変数を宣言
    CItem*               temp_class;
    ENUM_POINTER_TYPE temp_ret;

    //オブジェクトを作成
    temp_class = new CItem;
    temp_ret   = CheckPointer(temp_class);

    //表示して確認
    if( temp_ret == POINTER_DYNAMIC) {
        Print( "new演算子で作成されたオブジェクト。","ポインタ:",temp_class , " チェック結果:",temp_ret );
    } else {
        Print( "他要因で作成されたオブジェクト。"   ,"ポインタ:",temp_class , " チェック結果:",temp_ret );
    }
}

【補足】オブジェクトのポインタ定数の列挙型(ENUM_POINTER_TYPE)

オブジェクトのポインタ定数は、ENUM_POINTER_TYPE​という列挙型に含まれています。

列挙型は、定数群をひとまとめにしたものです。

以下のように使います。

ENUM_POINTER_TYPE pointerType = POINTER_DYNAMIC;

上記のようにプログラムすると、pointerType変数に POINTER_DYNAMICの値が代入されます。