MQL5におけるOOPに関する質問 - ページ 18 1...111213141516171819202122232425...96 新しいコメント Roman 2019.08.11 21:29 #171 どう違うのか、教えてください。 このようにオブジェクト(ポインタ)を作成する ことで class CClass { public: }CObj, *pCObj; 古典的なクリーチャーから CClass CObj; CClass *CObj; プロで異なる挙動に気づき、なぜだろうと思い始め、文献検索、最初の見方がわからない。 Koldun Zloy 2019.08.12 02:05 #172 Roman: どう違うのか、教えてください。 このようにオブジェクト(ポインタ)を作成する ことで 古典的なクリーチャーから プラスで違う挙動に気づいた、なぜだろう、文献検索も、最初の探し方と言われてもわからない。 MQLでもプラスでも、差はありません。 Roman 2019.08.12 02:23 #173 Koldun Zloy: それは、MQLでもプラスでも変わりません。 質問を理解していない。その違いは、言語ではなく、宣言そのものにある。 最初の例からオブジェクトの挙動が理解できない。 私の推測では、オブジェクトもスタック上に生成され、クラスのデストラクタが 呼ばれた後に破棄され、オブジェクトはコード内でグローバルに見えるようになっているのではないかと思います。 それを明確にしたかったのですが、最初のメソッドの動作はどうなっているのでしょうか? 私の推測は正しいでしょうか? googleで探すと何というのでしょうか? なぜなら、(mqlではなくC++で)オブジェクトを違う方法で作成すると、使用するメソッドでの動作が変わり、期待通りにならないことに気がついたからです。 Koldun Zloy 2019.08.12 02:26 #174 Roman: 質問を理解していない。その違いは、言語ではなく、宣言そのものにある。 最初の例からオブジェクトの動作が理解できない。 私の推測では、オブジェクトもスタック上に作成され、クラスのデストラクタを 呼び出した後に破棄され、オブジェクトはコード内でグローバルに可視化されていると思います。 それを明確にしたかったのですが、最初のメソッドの動作はどうなっているのでしょうか? 私の推測は正しいでしょうか? ググればわかるけど、なんていうんだっけ? というのも、オブジェクトの作成方法が異なると、使用するメソッドでの挙動が変わり、期待通りにならないことに気づいたからです。 質問の内容は理解できました。広告に差はありません。 Roman 2019.08.12 02:45 #175 Koldun Zloy: 質問の内容は理解できました。広告に差はありません。 その違いは、スコープにある可能性が高い。 あるファイルの最初の例は常にグローバルに表示され、2番目の例や新しい例は、関数で非表示にすることができます。 Koldun Zloy 2019.08.12 03:40 #176 Roman: その違いは、スコープにある可能性が高い。 あるファイルの最初の例は常にグローバルに表示され、2番目の例や新しい例は、関数内で非表示にすることができます。 ここで違うのは、どう宣言するかではなく、どこで宣言するかということです。 Roman 2019.08.12 04:09 #177 Koldun Zloy: ここで違うのは、どう宣言するかではなく、どこで宣言するかということです。 私も、論理的な推論によって、その結論に至りました :)) 自分の考えが正しいかどうか、確かめたかったのです。分かりやすい説明ありがとうございました。 Igor Makanu 2019.08.29 07:34 #178 Vladimir Simakov: lotDigits=MathMax(-(int)MathFloor(MathLog10(lotStep)),0); 確認したところ、このコードは小数点を計算するために正しく動作していませんでした。 基本的に私のも正しく動作するとは限りません、それは分かっています。 スクリプトで確認することができます。 void OnStart() { double l=0.0; for(int i=0; i<100; i++) { Print(l," ---> LotDigits / MyDigits = ",LotDigits(l)," / ",MyDigits(l)); l+=0.003; } } //+------------------------------------------------------------------+ int LotDigits(double value) { return(MathMax(-(int)MathFloor(MathLog10(value)),0)); } //+------------------------------------------------------------------+ int MyDigits(double v) { long i=10000000,k=long(v/0.0000001); int d=0; while(d<7 && k%i>0) { i/=10; d++; } return(d); } //+------------------------------------------------------------------+ スクリプトのログを添付しています。 ファイル: 20190829.log 9 kb Georgiy Merts 2019.08.29 08:06 #179 Roman: どう違うのか、教えてください。 このようにオブジェクト(ポインタ)を作成する ことで 古典的なクリーチャーから プロでは、違う挙動に気づき、なぜだろうと考え、文献検索では、最初の調べ方を何と呼べばいいのかもわからない。 個人的には、私もあまり違いを感じませんが、このような書き方そのものが、私にはかなり危険なように思えます。 ポインタは、生成時に直ちにNULLか、実オブジェクトへのポインタのどちらかに等しくなければならない。このポインタが格納される小さなメモリ空間が生成され、NULL値または通常のポインタとして格納されます。 一方、オブジェクトの宣言は、オブジェクト全体を作成し、コンストラクタを呼び出してメモリを確保する。 Vladimir Simakov 2019.08.29 08:33 #180 Igor Makanu: 確認したところ、このコードは小数点以下の桁数を計算するために正しく動作していません。 基本的に私のも正しく動作するとは限りません、それは分かっています。 スクリプトで確認することができます。 スクリプトのログを添付しています。 0.15とか、多くはないだろうという前提があります。少なくとも私は聞いたことがない。ふと見かけたら、やり直します。 1...111213141516171819202122232425...96 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
どう違うのか、教えてください。
このようにオブジェクト(ポインタ)を作成する ことで
古典的なクリーチャーから
プロで異なる挙動に気づき、なぜだろうと思い始め、文献検索、最初の見方がわからない。
どう違うのか、教えてください。
このようにオブジェクト(ポインタ)を作成する ことで
古典的なクリーチャーから
プラスで違う挙動に気づいた、なぜだろう、文献検索も、最初の探し方と言われてもわからない。
MQLでもプラスでも、差はありません。
それは、MQLでもプラスでも変わりません。
質問を理解していない。その違いは、言語ではなく、宣言そのものにある。
最初の例からオブジェクトの挙動が理解できない。
私の推測では、オブジェクトもスタック上に生成され、クラスのデストラクタが 呼ばれた後に破棄され、オブジェクトはコード内でグローバルに見えるようになっているのではないかと思います。
それを明確にしたかったのですが、最初のメソッドの動作はどうなっているのでしょうか?
私の推測は正しいでしょうか?
googleで探すと何というのでしょうか?
なぜなら、(mqlではなくC++で)オブジェクトを違う方法で作成すると、使用するメソッドでの動作が変わり、期待通りにならないことに気がついたからです。
質問を理解していない。その違いは、言語ではなく、宣言そのものにある。
最初の例からオブジェクトの動作が理解できない。
私の推測では、オブジェクトもスタック上に作成され、クラスのデストラクタを 呼び出した後に破棄され、オブジェクトはコード内でグローバルに可視化されていると思います。
それを明確にしたかったのですが、最初のメソッドの動作はどうなっているのでしょうか?
私の推測は正しいでしょうか?
ググればわかるけど、なんていうんだっけ?
というのも、オブジェクトの作成方法が異なると、使用するメソッドでの挙動が変わり、期待通りにならないことに気づいたからです。
質問の内容は理解できました。広告に差はありません。
質問の内容は理解できました。広告に差はありません。
その違いは、スコープにある可能性が高い。
あるファイルの最初の例は常にグローバルに表示され、2番目の例や新しい例は、関数で非表示にすることができます。
その違いは、スコープにある可能性が高い。
あるファイルの最初の例は常にグローバルに表示され、2番目の例や新しい例は、関数内で非表示にすることができます。
ここで違うのは、どう宣言するかではなく、どこで宣言するかということです。
ここで違うのは、どう宣言するかではなく、どこで宣言するかということです。
私も、論理的な推論によって、その結論に至りました :))
自分の考えが正しいかどうか、確かめたかったのです。分かりやすい説明ありがとうございました。
確認したところ、このコードは小数点を計算するために正しく動作していませんでした。
基本的に私のも正しく動作するとは限りません、それは分かっています。
スクリプトで確認することができます。
スクリプトのログを添付しています。
どう違うのか、教えてください。
このようにオブジェクト(ポインタ)を作成する ことで
古典的なクリーチャーから
プロでは、違う挙動に気づき、なぜだろうと考え、文献検索では、最初の調べ方を何と呼べばいいのかもわからない。
個人的には、私もあまり違いを感じませんが、このような書き方そのものが、私にはかなり危険なように思えます。
ポインタは、生成時に直ちにNULLか、実オブジェクトへのポインタのどちらかに等しくなければならない。このポインタが格納される小さなメモリ空間が生成され、NULL値または通常のポインタとして格納されます。
一方、オブジェクトの宣言は、オブジェクト全体を作成し、コンストラクタを呼び出してメモリを確保する。
確認したところ、このコードは小数点以下の桁数を計算するために正しく動作していません。
基本的に私のも正しく動作するとは限りません、それは分かっています。
スクリプトで確認することができます。
スクリプトのログを添付しています。