class B;
class A
{
protected:
int i;
public:
voidoperator =( const B* Value )
{
this.i = Value.i; // 'i' - protected member access error// А так можно!this.i = ((A*)Value).i; // и нет ошибки: cannot convert from const pointer to nonconst pointer
}
};
class B : public A {};
どちらも同じような状況になるのではと思いました。でも、違うんです!
fxsaber:
ハンドルネームからファイル名を知るには?
クラスA内でのみ可能です。私には問題ないように見えますが。
失態
はすでに修正されていますので、新しいビルドをお待ちください。
ошибка
はすでに修正されていますので、新しいビルドをお待ちください。
MetaEditorはファイル名にポイントを追加する
操作の順序。
その結果、ファイル名はTest2.txtではなく、Test2..txtになります。
メモ帳は、他のすべての条件が同じであれば、ファイル名に余分なドットを追加することはありませんfxsaber:
はすでに修正されていますので、新しいビルドをお待ちください。
マイクロソフトのコンパイラは、同様のケースで、メソッド(この場合は演算子=)の実装をクラスの外に持ち出すことを理由にして要求するので、我々は、それがどのように正確に修正されているかを見る必要があります。
https://www.mql5.com/ru/forum/1111/page2001#comment_5679732
https://www.mql5.com/ru/forum/1111/page2001#comment_5680465
これは、可能性を狭めるという意味で、言語として間違った振る舞いのように思えます。
constフィールドを構造体として定義する必要があります。コピー演算子が使えると思ったのですが、構文が似ているため、コンパイラは代わりにコンストラクタを要求しています。しかし、それは正しいことではありません。
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
バグ、バグ、質問
fxsaber, 2017.05.19 22:35
TimeTradeServerは、あらゆる種類の無意味なものを返すことができます。例えば、TimeCurrentより小さい値。これでは、実用化は全く不可能です。
もし私の考えが正しければ、TimeTradeServerはTimeCurrentを受け取った後に経過時間を計算し、この差を加えることで、将来のTimeCurrentの値をエミュレートするようなものでなければなりません。
さて、Expert Advisorを実行したところ
どんな無意味なものでも見ることができます。
日付にご注目ください。