mql5におけるOOP、テンプレート、マクロ、微妙な使い分け - ページ 11 1...456789101112131415161718...28 新しいコメント Ilya Malev 2019.01.25 20:38 #101 TheXpert:比較のためのダイナミックキャスト?この場合、実行時間は気にしません。型は他の方法でも定義できます。例えば、仮想オーバーライド関数で定義します。このコードは原理を示すためにその場で10分ほどで書いたもので、動作するバリアントではありません Alexey Navoykov 2019.01.25 20:38 #102 Ilya Malev:CBaseのポイントは何でしょうか?また、なぜ同じ型の2つの値を比較する必要があるのでしょうか? そうです、CBaseは全く必要ありません。 IComparerはNumberを継承していますが、全く別のエンティティです。 ComparerはNumberのインターフェースではなく、二つの数値を受け取る独立したオブジェクトです。 ですから、ComparerはIComparer <T1,T2> だけでよく、 NumberとCBaseは必要ありません。 TheXpert 2019.01.25 20:42 #103 なるほど、また自我のある糞コテか。 Ilya Malev 2019.01.25 20:45 #104 自己中ってのは、誰かが枝に乗ってウンチを投げ始めるととても大切なウンチク。私は、テンプレートの話題で盛り上がっていた同志(あなたではありません)に、そのような実装をどう見るかを書いただけです。 Alexey Navoykov 2019.01.25 20:46 #105 Ilya Malev:つまり、ComparerとComparableという概念が混同されているのです。 前者は比較対象(独立したクラス)であり、後者は比較されるオブジェクトのインターフェース(つまり、これを他のオブジェクトと比較する)です。 このオブジェクトは、この Ilya Malev 2019.01.25 20:49 #106 Alexey Navoykov:つまり、意味上の間違いがあります。 ComparerとComparableという概念が混同されています。 前者はComparer(独立したクラス)、後者は比較されるオブジェクトのインタフェース(つまり、これを別のオブジェクトと比較する)です。マイナンバーはただのComparable型、インターフェースはComparer型で、Sharpでもなぜか巧みに連携している。この場合、互いに作用し合うことになります。言っておくが、そこの構造をそっくりそのままコピーすることが目的ではなかったのだ。ここでの目的は、比較されるクラスの1つから必然的に継承されるテンプレートベースのインタフェースを作る方法を示すことである。その仕組みは、私も一緒に見ていて、いいなと思いました。 Ilya Malev 2019.01.25 20:55 #107 Alexey Navoykov: 全く別の存在なのに、なぜかNumberからIComparerが受け継がれているんですね。ここでは、ベースクラスのオブジェクトのタイプ別に、まあ、非常に大雑把に、100行で動くアーキテクチャを提示することを目標にしたわけではありません。しかし、いずれにせよすべては一つの共通の祖先から受け継ぐことになる Alexey Navoykov 2019.01.25 20:57 #108 Ilya Malev:ここでは、互いを通して仕事をする。 しかし、それはできません。 異なるエンティティを互いに継承することはできません。 NumberはIComparableインターフェイスを継承し、別のメソッドでその型に対応するIComparerを返すことができるのです。 Ilya Malev 2019.01.25 20:59 #109 Alexey Navoykov: NumberはIComparableインターフェイスを継承し、別のメソッドでその型に対応するIComparerを返すことができる。Numberは実際には数字ではなく、気がつけば値フィールドすら持っていない。そう呼んだだけなのだが...。でも、私の例がまったく合わないのであれば、気にしないでください。 Alexey Navoykov 2019.01.25 21:05 #110 Ilya Malev:Numberは実際には数字ではなく、気がつけば値フィールドすら持っていない。そう呼んだだけなのだが...。OK、もし私がうまくいくようなことを思いついたら、議論することを提案します。でも、その間に、もし私の例がまったくうまくいかなかったら、あなたの頭の中からそれを取り除いてください しかし、抽象的なメソッドについて考える必要があります。 抽象的なメソッドがないと、非常に信頼性が低くなります。 1...456789101112131415161718...28 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
比較のためのダイナミックキャスト?
この場合、実行時間は気にしません。型は他の方法でも定義できます。例えば、仮想オーバーライド関数で定義します。このコードは原理を示すためにその場で10分ほどで書いたもので、動作するバリアントではありません
CBaseのポイントは何でしょうか?また、なぜ同じ型の2つの値を比較する必要があるのでしょうか?
つまり、ComparerとComparableという概念が混同されているのです。 前者は比較対象(独立したクラス)であり、後者は比較されるオブジェクトのインターフェース(つまり、これを他のオブジェクトと比較する)です。 このオブジェクトは、この
つまり、意味上の間違いがあります。 ComparerとComparableという概念が混同されています。 前者はComparer(独立したクラス)、後者は比較されるオブジェクトのインタフェース(つまり、これを別のオブジェクトと比較する)です。
マイナンバーはただのComparable型、インターフェースはComparer型で、Sharpでもなぜか巧みに連携している。この場合、互いに作用し合うことになります。言っておくが、そこの構造をそっくりそのままコピーすることが目的ではなかったのだ。ここでの目的は、比較されるクラスの1つから必然的に継承されるテンプレートベースのインタフェースを作る方法を示すことである。その仕組みは、私も一緒に見ていて、いいなと思いました。
全く別の存在なのに、なぜかNumberからIComparerが受け継がれているんですね。
ここでは、ベースクラスのオブジェクトのタイプ別に、まあ、非常に大雑把に、100行で動くアーキテクチャを提示することを目標にしたわけではありません。しかし、いずれにせよすべては一つの共通の祖先から受け継ぐことになる
ここでは、互いを通して仕事をする。
NumberはIComparableインターフェイスを継承し、別のメソッドでその型に対応するIComparerを返すことができる。
Numberは実際には数字ではなく、気がつけば値フィールドすら持っていない。そう呼んだだけなのだが...。でも、私の例がまったく合わないのであれば、気にしないでください。
Numberは実際には数字ではなく、気がつけば値フィールドすら持っていない。そう呼んだだけなのだが...。OK、もし私がうまくいくようなことを思いついたら、議論することを提案します。でも、その間に、もし私の例がまったくうまくいかなかったら、あなたの頭の中からそれを取り除いてください