エラー、バグ、質問 - ページ 1920 1...191319141915191619171918191919201921192219231924192519261927...3185 新しいコメント A100 2017.07.02 15:10 #19191 fxsaber:祖先」はprotected/privateフィールドを見るので、見てはいけない。そして、パブリックフィールド:すべき/すべきでない?コンビナート です。を追加すると構造体B 効果なし fxsaber 2017.07.02 15:12 #19192 A100:そして、公開:すべき/すべきでない? public static field - must. A100 2017.07.02 15:18 #19193 fxsaber: public static-fieldは必須です。 要約すると、ベースクラスは派生クラスの非スタティックフィールドを見ることができません。同時に、ベースクラスには派生物のprotected staticは表示されず、public staticが表示されます。このルールはご自身で考案されたのですか? fxsaber 2017.07.02 15:21 #19194 A100: 要約すると、ベースクラスは派生クラスの非静的フィールドを見ることができません。同時に、ベースクラスには派生クラスのprotected staticは表示されず、public staticが表示されます。このルールはご自身で考案されたのですか?このような一般論がどこにあるのか、私にはわかりません。私自身は、そういう意識は一切なかったですね。任意のクラスは、他のクラスのパブリックな静的フィールド/メソッドを見ることができます。ベースクラスは、派生クラス(パブリック継承)のprotected/private(static - 何でも)フィールド/メソッドを見ることはありません。派生クラス(public-inheritance)は、ベースクラスのprivateフィールド/メソッドを見ることはなく、常にprotected/publicを見ることができます。 A100 2017.07.02 16:07 #19195 fxsaber:どのクラスも、他のクラスのパブリックな静的フィールド/メソッドを見ることができます。 結局、問題はここに行き着くのです。MQLでは、派生クラスのpublic staticフィールド/メソッドは、ベースクラスで利用可能ということでよろしいでしょうか? fxsaber 2017.07.02 16:11 #19196 A100: 結局、問題はここに集約されるのです。MQLでは、ベースクラスは派生クラスのpublic staticフィールド/メソッドを持つということでよろしいでしょうか?これは基底/微分の場合だけでなく、どのようなクラスでも一般的に正しいことです。 A100 2017.07.02 16:27 #19197 fxsaber:これは基底/微分の場合だけでなく、すべてのクラス一般で正しい。問題は何もないところから発生したのではない#ifdef __cplusplus struct B; struct A { int f() { return B::i; } //error E2451 }; struct B : A { static int i; }; int B::i; #endif ので、詳細なチェックが必要です。 A100 2017.07.02 17:49 #19198 fxsaber:任意のクラスは、他のクラスのパブリックな静的フィールド/メソッドを見ることができます。...ベースクラスを含む。したがって、MQLでは次のような矛盾が生じる。struct A { static int i; }; int A::i; struct B : private A {}; struct C : B { C() { Print( A::i ); } //error: 'i' - private member access error }; C++でエラーなし TheXpert 2017.07.02 18:19 #19199 A100:C++では構造体のメンバはデフォルトでpublicですが、mqlではprivateで、クラスと同じです。そうです、C++の前方宣言が抜けていて、定義が必要でした。 fxsaber 2017.07.02 18:24 #19200 A100:...基本的なものを含む。したがって、MQLでは次のような矛盾が生じる。 C++でエラーなしはい、これはMQLのプライベート継承のバグです。 1...191319141915191619171918191919201921192219231924192519261927...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
祖先」はprotected/privateフィールドを見るので、見てはいけない。
そして、パブリックフィールド:すべき/すべきでない?
を追加すると
構造体B
そして、公開:すべき/すべきでない?
public static-fieldは必須です。
要約すると、ベースクラスは派生クラスの非静的フィールドを見ることができません。同時に、ベースクラスには派生クラスのprotected staticは表示されず、public staticが表示されます。このルールはご自身で考案されたのですか?
このような一般論がどこにあるのか、私にはわかりません。私自身は、そういう意識は一切なかったですね。
任意のクラスは、他のクラスのパブリックな静的フィールド/メソッドを見ることができます。
ベースクラスは、派生クラス(パブリック継承)のprotected/private(static - 何でも)フィールド/メソッドを見ることはありません。
派生クラス(public-inheritance)は、ベースクラスのprivateフィールド/メソッドを見ることはなく、常にprotected/publicを見ることができます。
どのクラスも、他のクラスのパブリックな静的フィールド/メソッドを見ることができます。
結局、問題はここに集約されるのです。MQLでは、ベースクラスは派生クラスのpublic staticフィールド/メソッドを持つということでよろしいでしょうか?
これは基底/微分の場合だけでなく、どのようなクラスでも一般的に正しいことです。
これは基底/微分の場合だけでなく、すべてのクラス一般で正しい。
問題は何もないところから発生したのではない
ので、詳細なチェックが必要です。任意のクラスは、他のクラスのパブリックな静的フィールド/メソッドを見ることができます。
...ベースクラスを含む。したがって、MQLでは次のような矛盾が生じる。
C++でエラーなしC++では構造体のメンバはデフォルトでpublicですが、mqlではprivateで、クラスと同じです。
そうです、C++の前方宣言が抜けていて、定義が必要でした。
...基本的なものを含む。したがって、MQLでは次のような矛盾が生じる。
C++でエラーなしはい、これはMQLのプライベート継承のバグです。