エラー、バグ、質問 - ページ 1736 1...172917301731173217331734173517361737173817391740174117421743...3185 新しいコメント fxsaber 2016.10.17 13:46 #17351 coderex:興味のある方は、サーベデスクの回答をご覧ください。На данный момент оператор *(dereference/indirection) можно использовать только для указателей на объекты классов и это rvalueとても興味があります!サービスデスクの回答は、例を挙げて説明してください。& == GetPointer().* - 何も変わっていません。 coderex 2016.10.17 14:07 #17352 fxsaber:とても興味があります!サービスデスクの回答は、例を挙げて説明してください。& == GetPointer().* - 何も変わっていません。 どのような例が必要ですか? Alexey Navoykov 2016.10.17 14:20 #17353 coderex:という質問には、サービスデスクがお答えします。На данный момент оператор *(dereference/indirection) можно использовать только для указателей на объекты классов и это rvalue 先日、任意のデータ型への ポインターの導入について提案を送りました。そして、この馬鹿げた規制は迷惑だ。 coderex 2016.10.17 14:35 #17354 Alexey Navoykov: ところで、先日、任意のデータ型に ポインターを導入することについての提案を送った。そして、この馬鹿げた規制がすでに迷惑なのです。 演算子のオーバーロードを導入するのは良いことだと思う。それなしではSTLとの同一性を実現できないからだ。 Alexey Navoykov 2016.10.17 14:43 #17355 coderex: 演算子のオーバーロードを導入するのは良いことだと思います。このオーバーロードがなければ、STL で ID を実現することができないからです。 はい、そうですね。すべてが未完成の状態なんです。また、オーバーロードという点ではゴーストオペレーターの方が気になりますね、これがないと辛いですから。 fxsaber 2016.10.17 16:36 #17356 coderex: どのような例が必要ですか? と&に求めること。シンプルだけど、イラストのようなもの。だから、便利さがわかるんです。 coderex 2016.10.17 17:04 #17357 fxsaber: と&に求めること。シンプルだけど、イラストのようなもの。利便性を見るために。欲しいもの......すでに上に書きましたね。GetPointer(...)を使って、'&'演算子を使った例を自分で作ることもできますが、これは本質的に短い形式です。演算子'*'を使った例......理解の助けになるかどうか分かりませんが。class Iterator { int m_value;public: Iterator(const int val) : m_value(val) { } int operator*() { return m_value; } };int main(int argc, char **argv) { Iterator *_it = new Iterator(5); int _val = **_it;//--- return 0;} はC++で動作しますが、MQLではm_valueの取得にゲタを履かせる必要があります。 fxsaber 2016.10.17 17:04 #17358 ChartRedraw(MainChartID)はOBJ_CHARTの 再描画には適さないことをヘルプに追記しました。ChartRedraw(ObjChartID)が必要です。したがって、ヘルプの例は誤りです。 Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_CHART www.mql5.com Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_CHART - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 fxsaber 2016.10.17 20:59 #17359 N <= 5 (バー下の領域の大きさ = 2^N) に限定しないようお願いします。これは、ティック履歴を より詳細に見ることができるようにするために必要な(そして便利になった)ものです。 fxsaber 2016.10.18 06:40 #17360 明確にしてください。スクリプトclass A{public: const int a; A( int c = 0 ) : a(c) {} virtual int f() { Print(__FUNCTION__); return(this.a); }};class B : public A{public: const int b; B( int c = 0 ) : A(c), b(this.f()){} virtual int f() { Print(__FUNCTION__); return(this.a); }};void OnStart(){ B b; A* a = new B; delete a;}結果2016.10.18 09:35:01.981 Test14 (GBPUSD,M1) B::f2016.10.18 09:35:01.981 Test14 (GBPUSD,M1) B::fA::fではなく、B::Fが出力される理由は何でしょうか?スクリプトは、コンストラクタ本体が実行される前にfが呼び出されるように書かれています(太字)。しかし、この時点ではすでにAベースクラスのコンストラクタが 呼び出されています。そのため、this.f()はBのコンストラクタが呼ばれる前に、正確にベースクラスを参照しているようです。推論・予測の誤りはどこにあるのか、説明してほしい。 Errors, bugs, questions Any questions from newcomers Features of the mql5 1...172917301731173217331734173517361737173817391740174117421743...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
興味のある方は、サーベデスクの回答をご覧ください。
とても興味があります!サービスデスクの回答は、例を挙げて説明してください。
& == GetPointer().* - 何も変わっていません。
とても興味があります!サービスデスクの回答は、例を挙げて説明してください。
& == GetPointer().* - 何も変わっていません。
という質問には、サービスデスクがお答えします。
ところで、先日、任意のデータ型に ポインターを導入することについての提案を送った。そして、この馬鹿げた規制がすでに迷惑なのです。
演算子のオーバーロードを導入するのは良いことだと思います。このオーバーロードがなければ、STL で ID を実現することができないからです。
どのような例が必要ですか?
と&に求めること。シンプルだけど、イラストのようなもの。利便性を見るために。
欲しいもの......すでに上に書きましたね。
GetPointer(...)を使って、'&'演算子を使った例を自分で作ることもできますが、これは本質的に短い形式です。
演算子'*'を使った例......理解の助けになるかどうか分かりませんが。
{
int m_value;
public:
Iterator(const int val) : m_value(val) { }
int operator*() { return m_value; }
};
int main(int argc, char **argv) {
Iterator *_it = new Iterator(5);
int _val = **_it;
//---
return 0;
}
はC++で動作しますが、MQLではm_valueの取得にゲタを履かせる必要があります。
ChartRedraw(MainChartID)はOBJ_CHARTの 再描画には適さないことをヘルプに追記しました。ChartRedraw(ObjChartID)が必要です。
したがって、ヘルプの例は誤りです。
N <= 5 (バー下の領域の大きさ = 2^N) に限定しないようお願いします。
これは、ティック履歴を より詳細に見ることができるようにするために必要な(そして便利になった)ものです。
{
public:
const int a;
A( int c = 0 ) : a(c) {}
virtual int f()
{
Print(__FUNCTION__);
return(this.a);
}
};
class B : public A
{
public:
const int b;
B( int c = 0 ) : A(c), b(this.f()){}
virtual int f()
{
Print(__FUNCTION__);
return(this.a);
}
};
void OnStart()
{
B b;
A* a = new B;
delete a;
}
結果
2016.10.18 09:35:01.981 Test14 (GBPUSD,M1) B::f
A::fではなく、B::Fが出力される理由は何でしょうか?スクリプトは、コンストラクタ本体が実行される前にfが呼び出されるように書かれています(太字)。しかし、この時点ではすでにAベースクラスのコンストラクタが 呼び出されています。そのため、this.f()はBのコンストラクタが呼ばれる前に、正確にベースクラスを参照しているようです。推論・予測の誤りはどこにあるのか、説明してほしい。