"ダミー "からの質問 - ページ 106 1...99100101102103104105106107108109110111112113...277 新しいコメント roman epifanov 2012.02.22 14:03 #1051 uncleVic: タスク...信号モジュールを添付してください(持っていません)。見てみよう。 ファイル: SignalCandles.mqh 20 kb Victor Kirillin 2012.02.22 14:32 #1052 openlive: さらに不思議なことにその効果が発揮されていないのです。 roman epifanov 2012.02.22 15:03 #1053 uncleVic: さらに奇妙なことに効果がわからない。初期化時のみ効果を発揮し、テスターでは全て正常ですよし、いらない、本当にいらない。 Olegs Kucerenko 2012.02.23 18:58 #1054 Zigzagインジケータが、もはや存在しない値(再描画前にあったはずの値)を読み取ってしまいます。 これを回避することは可能でしょうか?値がバッファにあるのなら、なぜ再描画されないのか...。 削除済み 2012.02.24 09:09 #1055 こんにちは、以下について説明してください。class Cbase { public: virtual ~Cbase(){}; int k; }; class Cchild:public Cbase { public: ~Cchild(){}; double *p; int f; };私は2つのクラスを持っていますが、私は次の世代のインスタンス(ベース- 子 - 子2 - ...)が、メモリにますます多くのスペースを取ると信じています。Newオペレータには、パラメータでクラスを渡しながら、どれだけのメモリを確保するかを正確に言う。しかし、delete演算 子では、どれだけのメモリを確保するかは、正確には言っていないのです。この理屈でいくと、次の場面ではどうなるのか、よくわからない。void fn() { Cbase *pClass; pClass = new Cchild; delete pClass; return; }つまり、Cbase(Cchildに比べれば小さなクラス)へのポインタとして*pClassを宣言したが、実際にはCchildを指しているということだ。そこで、delete()は どのような挙動をするのでしょうか?Cbaseのサイズと同じバイト数だけ解放さ れるのか(そうするとメモリが詰まる)、それとも削除が正しく行われるのか? P.S.: そうだ、もう一つ質問なのですが、割り当てられたメモリ領域(new)に、この領域のサイズがわかるようなラベルはあるのでしょうか(charの末尾が0になっているようなものが格納されている)?言い換えれば、私が宣言したクラスのサイズについて何も知らないコード片は、正しくメモリを解放できるのでしょうか? --- 2012.02.24 09:18 #1056 220Volt:問題は、delete()が どのような挙動を示すかです。Cbaseサイズと同じバイト数を解放 するのか(そうするとメモリが詰まる)、それとも正しく削除されるのか?もちろん、メモリも正しく解放されます。 P.S.: そうだ、もう一つ質問なのですが、割り当てられたメモリ領域(new)に、この領域のサイズがわかるようなラベルはありますか(charが末尾にゼロターミネーターを持つように格納されているように)?言い換えれば、私が宣言したクラスのサイズについて何も知らないコード断片は、正しくメモリを解放できるのでしょうか? sizeof ? 削除済み 2012.02.24 09:25 #1057 sergeev:もちろん、正しく削除されます。ブリックポイントをデストラクタに分散させることができます。 この質問は、そんなところからきているのです。だいたい説明通りにやってみたところ(デストラクタはvirtualではなかった)、ポインタクラス以下のデストラクタは呼び出されなかった。 削除済み 2012.02.24 09:28 #1058 sergeev: sizeof ? sizeofはコンパイル時に機能すると思いますが、例えば他のプロセスからメモリを解放 する場合の話です。これが可能であれば、削除機能も理解できると思うのですが。 Документация по MQL5: Основы языка / Операторы / Оператор уничтожения объекта delete www.mql5.com Основы языка / Операторы / Оператор уничтожения объекта delete - Документация по MQL5 Ilyas 2012.02.24 09:36 #1059 MQL5ではデストラクタは常に仮想です。デストラクタにPrint(__FUNCSIG__);を入れてみると、すべて正しく削除されます。class CFoo { public: ~CFoo() { Print(__FUNCSIG__); } }; class CBar : public CFoo { public: ~CBar() { Print(__FUNCSIG__); } }; void OnStart() { CFoo *f=new CBar(); delete f; } 削除済み 2012.02.24 09:38 #1060 問題は、newを介してクラス関数に設定した内容よりも、その「ネイティブ」メンバのクラスデータについてである。結局、何もない空間でもないのです。 1...99100101102103104105106107108109110111112113...277 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
タスク...信号モジュールを添付してください(持っていません)。見てみよう。
さらに奇妙なことに効果がわからない。
初期化時のみ効果を発揮し、テスターでは全て正常です
よし、いらない、本当にいらない。
Zigzagインジケータが、もはや存在しない値(再描画前にあったはずの値)を読み取ってしまいます。 これを回避することは可能でしょうか?
値がバッファにあるのなら、なぜ再描画されないのか...。
こんにちは、以下について説明してください。
私は2つのクラスを持っていますが、私は次の世代のインスタンス(ベース- 子 - 子2 - ...)が、メモリにますます多くのスペースを取ると信じています。Newオペレータには、パラメータでクラスを渡しながら、どれだけのメモリを確保するかを正確に言う。しかし、delete演算 子では、どれだけのメモリを確保するかは、正確には言っていないのです。この理屈でいくと、次の場面ではどうなるのか、よくわからない。
つまり、Cbase(Cchildに比べれば小さなクラス)へのポインタとして*pClassを宣言したが、実際にはCchildを指しているということだ。そこで、delete()は どのような挙動をするのでしょうか?Cbaseのサイズと同じバイト数だけ解放さ れるのか(そうするとメモリが詰まる)、それとも削除が正しく行われるのか?
P.S.: そうだ、もう一つ質問なのですが、割り当てられたメモリ領域(new)に、この領域のサイズがわかるようなラベルはあるのでしょうか(charの末尾が0になっているようなものが格納されている)?言い換えれば、私が宣言したクラスのサイズについて何も知らないコード片は、正しくメモリを解放できるのでしょうか?
220Volt:
問題は、delete()が どのような挙動を示すかです。Cbaseサイズと同じバイト数を解放 するのか(そうするとメモリが詰まる)、それとも正しく削除されるのか?
もちろん、メモリも正しく解放されます。
P.S.: そうだ、もう一つ質問なのですが、割り当てられたメモリ領域(new)に、この領域のサイズがわかるようなラベルはありますか(charが末尾にゼロターミネーターを持つように格納されているように)?言い換えれば、私が宣言したクラスのサイズについて何も知らないコード断片は、正しくメモリを解放できるのでしょうか?
もちろん、正しく削除されます。ブリックポイントをデストラクタに分散させることができます。
sizeof ?