Artyomさん、以下の作業を行うためにポインタにダイナミック・メモリを割り当てる のは、何か特別な理由があるのでしょうか?
int CTrading::GetIndexPendingRequestByOrder(const ulong ticket) { CPendingReq *req=new CPendingReq(); if(req==NULL) return WRONG_VALUE; req.SetOrder(ticket); this.m_list_request.Sort(SORT_BY_PEND_REQ_TICKET); int index=this.m_list_request.Search(req); delete req; return index; }
私の率直な意見では、単純なローカル変数を 使用した方が、メソッドがシンプルになり、上の余計なポインタ処理コードが なくなると思います。
int CTrading::GetIndexPendingRequestByOrder(const ulong ticket) { CPendingReq req; req.SetOrder(ticket); this.m_list_request.Sort(SORT_BY_PEND_REQ_TICKET); int index=this.m_list_request.Search(req); return index; }
前者のアプローチを選択する理由を理解したいのですが...もしかしたら、私はベストプラクティスを見逃しているのでしょうか?
/ディマ
ddiall :
Artyomさん、以下の作業を行うためにポインタにダイナミック・メモリを割り当てる のは、何か特別な理由があるのですか?
私の率直な意見としては、単純なローカル変数を 使用した方がメソッドがシンプルになり、上の余計なポインタ処理コードが なくなると思います。
前者のアプローチを選択する理由を理解したいのですが......もしかしたら、私はベストプラクティスを見逃しているのでしょうか?
/ディマ
Search()メソッドは オブジェクトへのポインタで動作します:
int Search( CObject* element // サンプル ) const
でも、メソッドを呼び出して、代わりにローカル変数のポインタを渡すことはできないのですか?
int index=this.m_list_request.Search(GetPointer(req));
ddiall :
でも、メソッドを呼び出して、代わりにローカル変数のポインターを渡すことはできないの?
いろんなやり方があるよね.僕はこうしたよ.)
Artyom Trishkin:
まだ記事を読んだりコードを勉強している最中なので、自分の理解を確認するためだったんだ ;-)
いろいろな方法でできる.僕はこれをやったんだ.)
ddiall:
まだ記事を読んだりコードを勉強している最中なので、私の理解を確認するためだったんだ。)
ありがとう。どういたしまして :)
まだ記事を読んだりコードを勉強している最中なので、私の理解を確認するためだったんだ。)
CEventsCollection*GetObject(void) { return &this;
取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事 MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第28部): 指値取引リクエストの決済、削除、変更 はパブリッシュされました:
これは、保留中リクエストの概念に関する3番目の記事です。ここでは、ポジションの決済、指値注文の削除、ポジションと指値注文パラメータの変更のためのメソッドを作成することにより、指値取引リクエストのテストを完了します。
これは保留中リクエストの概念に関する3番目の記事です。本稿では、ポジションの決済、注文の削除、およびポジション、ストップ注文と変更可能な指値注文パラメータの変更のためのメソッドを作成することにより、コンセプトのテストを完了します。
作者: Artyom Trishkin