記事"MQL5でのオブジェクトポインターの使用"についてのディスカッション - ページ 2 12345 新しいコメント kogriv 2011.01.07 16:54 #11 こんにちは。初心者です。アイコンの使い方について質問があります。 サンプルリストのファイルではclass CListItem { private: int ID; CListItem *next; CListItem *prev; 「はオブジェクトへのポインタを宣言するために使われます。 次にpublic: ~CListItem(); ... CListItem* next(){return(next);} CListItem* prev(){return(prev);} この "*"記号が何に使われるのかがはっきりしません。 ヘルプによると、「複雑な型のオブジェクトを動的に作成することができます。 new演算 子はここでは使われていません。どのような場合に、どのように "*"記号が使われるのか、もう少し詳しく説明してください。 Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new www.mql5.com Основы языка / Операторы / Оператор создания объекта new - Документация по MQL5 Rashid Umarov 2011.01.07 18:04 #12 kogriv:さらに、しかしだ:そこに置かれた "*"記号が何を意味するのかは不明である。このように書くことができる。public: ~CListItem(); ... CListItem *next(){return(next);} CListItem *prev(){return(prev);}違いはなく、デザインのスタイルとちょっとしたイデオロギー的アプローチに関するものだ。 kogriv 2011.01.07 18:21 #13 Rosh:次のように書くことができる。違いはなく、デザインのスタイルとちょっとしたイデオロギー的なアプローチに関わるだけだ。 つまりCListItem *next(){return(next);} これは、next()というオブジェクト(またはメソッド?)へのポインタの宣言ですか?そして、中カッコの中で、nextというオブジェクトそのものが返されるということですか? 私の理解は正しいですか? すべてが非常にシンプルであるべきだということは理解していますが、OOPに遭遇したことがないので、私は3つの松をさまよっています。どうか理解させてください。 Rashid Umarov 2011.01.07 18:26 #14 kogriv: つまり。は、next()というオブジェクト(またはメソッド?)へのポインタの宣言でしょうか? next()関数はCListItemクラスの 変数へのポインタを返すと書いてあります。 Rashid Umarov 2011.01.07 18:28 #15 kogriv: そして、中括弧の中で、次のオブジェクトそのものが返されるのですか? 私の理解は正しいですか?関数の本体は中かっこで囲まれています、{return(next);}これは、関数がCListItemクラスのオブジェクトへの ポインタの型を持つ変数nextを返すことを意味します。これは一般的に関数の型と一致しています。 Документация по MQL5: Основы языка / Типы данных / Структуры и классы www.mql5.com Основы языка / Типы данных / Структуры и классы - Документация по MQL5 Yedelkin 2011.02.20 21:02 #16 最初の例の直後、記事には「pstatus 変数はオブジェクトのポインター だが、new 演算子を使ってオブジェクトそのものを作成するのを意図的に "忘れ"、それを PrintStatus()関数のパラメーターとして渡した」というフレーズがある。 1.ポインタなのかオブジェクトなのか? 2.この例にはPrintStatus() 関数はありません。 削除済み 2012.02.18 17:26 #17 エラーがあると思います://+------------------------------------------------------------------+ //| リストに項目を追加する| //+------------------------------------------------------------------+ CList::addItem(CListItem *item) { //--- まず、渡されたポインタの正しさをチェックする。 if(CheckPointer(item)==POINTER_INVALID) return; //--- リスト内のアイテム数を増やす m_counter++; //--- リストにまだ項目がない場合 if(CheckPointer(first)!=POINTER_DYNAMIC) { first=item; } else { //--- 項目を前のオブジェクトのポインタに設定する----------------------- Start of error----------------------- item.prev(first); //--- 現在の最初の要素のポインタを覚えておく CListItem *p=first; //--- 入力された項目を最初の項目の代わりに置く first=item; //--- リストの最初の要素に次のオブジェクトのポインタを設定する first.next(p); } } 新しいリスト要素では、prevとfirstが2番目の要素を参照しているように見えますが、2番目の要素は1番目の要素への参照を取得していません。 Rashid Umarov 2012.02.20 07:54 #18 Yedelkin:最初の例の直後、記事には「pstatus 変数はオブジェクト・ポインタ だが、new 演算子でオブジェクトそのものを作成するのを意図的に "忘れ"、PrintStatus()関数のパラメータとして渡した 」というフレーズがある。1.ポインタなのかオブジェクトなのか?2.例にはPrintStatus() 関数がない。遅かれ早かれ。ありがとうございます。文末を削除最初の例の直後に、「pstatus 変数はオブジェクトのポインタ だが、new 演算子を使ってオブジェクトそのものを作成するのを意図的に "忘れ"、それをPrintStatus()関数のパラメータとして渡している 」という表現が含まれています。 Rashid Umarov 2012.02.20 08:42 #19 220Volt:エラーがあると思います: 新しいリスト要素では、prevとfirstが2番目の要素を参照しているように見えますが、2番目の要素は1番目の要素への参照を取得していません。はい、タイプミスです。代わりに else { //--- セット項目 указатель предыдущего объекта item.prev(first); の代わりにelse { //---最初の セット указатель предыдущего объекта first.prev(item); に訂正します。 削除済み 2014.01.23 06:37 #20 MQL5とMQL4のポインタと参照についてまだ理解していません。参照渡しとポインターの違いは、余分なコードを除いて何なのでしょうか?C++では違いがありますが、ここではどうなのでしょうか?難しくなければ、もっと詳しい情報を書いてください。 12345 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは。初心者です。アイコンの使い方について質問があります。
サンプルリストのファイルでは
「はオブジェクトへのポインタを宣言するために使われます。
次に
この "*"記号が何に使われるのかがはっきりしません。
ヘルプによると、「複雑な型のオブジェクトを動的に作成することができます。 new演算 子はここでは使われていません。どのような場合に、どのように "*"記号が使われるのか、もう少し詳しく説明してください。
さらに、しかしだ:
そこに置かれた "*"記号が何を意味するのかは不明である。
このように書くことができる。
違いはなく、デザインのスタイルとちょっとしたイデオロギー的アプローチに関するものだ。
次のように書くことができる。
違いはなく、デザインのスタイルとちょっとしたイデオロギー的なアプローチに関わるだけだ。
つまり
CListItem *next(){return(next);}これは、next()というオブジェクト(またはメソッド?)へのポインタの宣言ですか?そして、中カッコの中で、nextというオブジェクトそのものが返されるということですか? 私の理解は正しいですか?
すべてが非常にシンプルであるべきだということは理解していますが、OOPに遭遇したことがないので、私は3つの松をさまよっています。どうか理解させてください。
つまり。
は、next()というオブジェクト(またはメソッド?)へのポインタの宣言でしょうか?
そして、中括弧の中で、次のオブジェクトそのものが返されるのですか? 私の理解は正しいですか?
関数の本体は中かっこで囲まれています、
{return(next);}これは、関数がCListItemクラスのオブジェクトへの ポインタの型を持つ変数nextを返すことを意味します。これは一般的に関数の型と一致しています。
最初の例の直後、記事には「pstatus 変数はオブジェクトのポインター だが、new 演算子を使ってオブジェクトそのものを作成するのを意図的に "忘れ"、それを PrintStatus()関数のパラメーターとして渡した」というフレーズがある。
1.ポインタなのかオブジェクトなのか?
2.この例にはPrintStatus() 関数はありません。
エラーがあると思います:
新しいリスト要素では、prevとfirstが2番目の要素を参照しているように見えますが、2番目の要素は1番目の要素への参照を取得していません。最初の例の直後、記事には「pstatus 変数はオブジェクト・ポインタ だが、new 演算子でオブジェクトそのものを作成するのを意図的に "忘れ"、PrintStatus()関数のパラメータとして渡した 」というフレーズがある。
1.ポインタなのかオブジェクトなのか?
2.例にはPrintStatus() 関数がない。
遅かれ早かれ。ありがとうございます。文末を削除
最初の例の直後に、「pstatus 変数はオブジェクトのポインタ だが、new 演算子を使ってオブジェクトそのものを作成するのを意図的に "忘れ"、それをPrintStatus()関数のパラメータとして渡している 」という表現が含まれています。
エラーがあると思います:
新しいリスト要素では、prevとfirstが2番目の要素を参照しているように見えますが、2番目の要素は1番目の要素への参照を取得していません。はい、タイプミスです。代わりに
の代わりに
に訂正します。MQL5とMQL4のポインタと参照についてまだ理解していません。参照渡しとポインターの違いは、余分なコードを除いて何なのでしょうか?C++では違いがありますが、ここではどうなのでしょうか?難しくなければ、もっと詳しい情報を書いてください。