初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 179 1...172173174175176177178179180181182183184185186...1504 新しいコメント 削除済み 2014.01.19 15:27 #1781 Reshetov:これは、それ自身へのポインタではなく、オブジェクトの実装におけるフィールド識別子と関連づけられたポインタである。 つまり、あるオブジェクトのメソッドにフィールドと同じ識別子を持つローカル変数があるかもしれない。その場合、これを利用して、オブジェクトフィールドへのポインタとローカル変数へのポインタを区別することができるのである。 どのような用途に使えるか、例として使えるか? Yury Reshetov 2014.01.19 18:28 #1782 Barbarian2: どのような目的で使用できるのでしょうか? 例を挙げていただけますか? これはクラスのコンストラクタで 最もよく使われる方法で、新しい識別子を作らないようにするためです。 Vasiliy Sokolov 2014.01.19 22:08 #1783 Barbarian2: しかし、どのような目的で必要なのでしょうか?class node { public: void LinkWithNode(node* childNode) { if(CheckPoint(linkNode) != POINTER_INVALID) this.childNode = childNode; } private: node* childNode; }; class LineNode : node { public: LineNode(node* parentNode) { parentNode.LinkWithNode(GetPointer(this)); } };この場合、LineNodeを作成する際に、現在のLineNodeインスタンスが属する親ノードを指定する必要があります。親ノードは、このインスタンスを参照によって参照することができるようになります。この例では、thisという単語が2回使われています。最初のケースでは、thisという単語が、childNode変数が特に現在のクラスを参照していることを指定し、thisを持たないchildNodeは、同じ名前のLinkWithNodeメソッド変数であることを指定します。2番目のケースでは、これはクラスの現在のインスタンスを返し、GetPointerはそれへのポインタを受け取 ります。これにより、LineNodeを生成した瞬間にバインドすることができます。 削除済み 2014.01.19 23:14 #1784 C-4: この場合、LineNodeを作成する際に、現在のLineNodeインスタンスが属する親ノードを指定する必要があります。親ノードは、このインスタンスを参照によって参照することができるようになります。この例では、thisという単語が2回使われています。最初のケースでは、thisという単語が、childNode変数が特に現在のクラスを参照していることを指定し、thisを持たないchildNodeは、同じ名前のLinkWithNodeメソッド変数であることを指定します。2番目のケースでは、これはクラスの現在のインスタンスを返し、GetPointerはそれへのポインタを受け取ります。そのため、LineNodeを生成した瞬間にバインドすることが可能である。 つまり、2つ目のケースでは、コードの削減につながるのでしょうか? Vladimir Gomonov 2014.01.20 08:36 #1785 Barbarian2: i.e. 2番目のケースでは、コード削減につながるのでしょうか? どんな略語であれ(この場合)、あなたは間違ったことに焦点を当てています。 その使い方は様々です。重要なのは、thisが使われているオブジェクトのインスタンスの同義語であることを理解することです。 クラスを定義するとき、thisのインスタンスがまだない場合、プログラマーが何を意味しているかをコンパイラに伝える唯一の方法はthisを使うことです。 Vasiliy Sokolov 2014.01.20 11:45 #1786 Barbarian2: i.e. 2番目のケースでは、コード削減につながるのでしょうか?いいえ、そうではありません。これにより、すでに定義されて いるクラスのインスタンスを 制御することができる。これを知っていれば、特定のインスタンスに独自の振る舞いを課すことができる。これにより、高い柔軟性と抽象度を実現しています。 Andrei Savchenko 2014.01.20 18:05 #1787 ひとことお願いします。mql4から5に移行するのですが、1000、10kバッファ用のインジケータを書こうと思って います。バッファに変数で名前を付けることは可能ですか?のようにwhile( a<1000){a++ B++バッファ名 = buff+abuff(a)=iMA(null, B,) }.そして、その後のバッファ処理も同じようにループさせながらまたは、mql5の新機能で時間やコードを削減する他の方法。 TheXpert 2014.01.20 18:18 #1788 Andrei-1:まず、バッファは256個が限界です(間違っているかもしれません)。また、バッファはクラスに入れて、エイリアスを与え、エイリアスで検索することもできますので、大丈夫です。 Andrei Savchenko 2014.01.20 18:35 #1789 ありがとうございます、検討させていただきます。 Andrew Petras 2014.01.20 18:49 #1790 Andrei-1:どこかの記事でtol64を 見た、私は一目で覚えていない、それを探してください。TheXpert です。まず、バッファは256個が限界です(間違っているかもしれません)。そして、バッファはすべてOKで、クラスに入れて、エイリアスをつけて、エイリアスを頼りに検索すればいい。 ヘルプの「カスタムインジケータで使用できるインジケータバッファの 数は制限されていません。"とありますが、どこかに512のことが書いてあったので、どうなんでしょう。 1...172173174175176177178179180181182183184185186...1504 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
これは、それ自身へのポインタではなく、オブジェクトの実装におけるフィールド識別子と関連づけられたポインタである。
つまり、あるオブジェクトのメソッドにフィールドと同じ識別子を持つローカル変数があるかもしれない。その場合、これを利用して、オブジェクトフィールドへのポインタとローカル変数へのポインタを区別することができるのである。
どのような目的で使用できるのでしょうか? 例を挙げていただけますか?
しかし、どのような目的で必要なのでしょうか?
この場合、LineNodeを作成する際に、現在のLineNodeインスタンスが属する親ノードを指定する必要があります。親ノードは、このインスタンスを参照によって参照することができるようになります。この例では、thisという単語が2回使われています。最初のケースでは、thisという単語が、childNode変数が特に現在のクラスを参照していることを指定し、thisを持たないchildNodeは、同じ名前のLinkWithNodeメソッド変数であることを指定します。2番目のケースでは、これはクラスの現在のインスタンスを返し、GetPointerはそれへのポインタを受け取 ります。これにより、LineNodeを生成した瞬間にバインドすることができます。
この場合、LineNodeを作成する際に、現在のLineNodeインスタンスが属する親ノードを指定する必要があります。親ノードは、このインスタンスを参照によって参照することができるようになります。この例では、thisという単語が2回使われています。最初のケースでは、thisという単語が、childNode変数が特に現在のクラスを参照していることを指定し、thisを持たないchildNodeは、同じ名前のLinkWithNodeメソッド変数であることを指定します。2番目のケースでは、これはクラスの現在のインスタンスを返し、GetPointerはそれへのポインタを受け取ります。そのため、LineNodeを生成した瞬間にバインドすることが可能である。
i.e. 2番目のケースでは、コード削減につながるのでしょうか?
i.e. 2番目のケースでは、コード削減につながるのでしょうか?
いいえ、そうではありません。これにより、すでに定義されて いるクラスのインスタンスを 制御することができる。これを知っていれば、特定のインスタンスに独自の振る舞いを課すことができる。これにより、高い柔軟性と抽象度を実現しています。
ひとことお願いします。mql4から5に移行するのですが、1000、10kバッファ用のインジケータを書こうと思って います。バッファに変数で名前を付けることは可能ですか?
のように
while( a<1000)
{
a++ B++
バッファ名 = buff+a
buff(a)=iMA(null, B,) }.
そして、その後のバッファ処理も同じようにループさせながら
または、mql5の新機能で時間やコードを削減する他の方法。
まず、バッファは256個が限界です(間違っているかもしれません)。
また、バッファはクラスに入れて、エイリアスを与え、エイリアスで検索することもできますので、大丈夫です。
どこかの記事でtol64を 見た、私は一目で覚えていない、それを探してください。
まず、バッファは256個が限界です(間違っているかもしれません)。
そして、バッファはすべてOKで、クラスに入れて、エイリアスをつけて、エイリアスを頼りに検索すればいい。