class A {
private:
int x;
public:
void f(int v) const { Print("const"); }
void f(constint v) { x = v; Print("(const) x = v "); }
// void f(int v) { x = v; Print("x = v "); } // 'f' - function already defined and has body
};
A a;
//+------------------------------------------------------------------+voidOnStart()
{
int y = 1;
constint z = 2;
a.f(3);
a.f(y);
a.f(z);
}
//+------------------------------------------------------------------+
class A {
private:
int x;
public:
void f(int v) const { Print("const"); }
void f(constint v) { x = v; Print("(const) x = v "); }
// void f(int v) { x = v; Print("x = v "); } // 'f' - function already defined and has body
};
A a;
const A b;
//+------------------------------------------------------------------+voidOnStart()
{
int y = 1;
constint z = 2;
a.f(3);
a.f(y);
a.f(z);
b.f(3);
b.f(y);
b.f(z);
}
class A {
private:
int x;
public:
void f(int v) const { Print("const"); }
constvoid f(int v) { x = v; Print("(const) x = v "); }
};
A a;
const A b;
//+------------------------------------------------------------------+voidOnStart()
{
int y = 1;
constint z = 2;
a.f(3);
a.f(y);
a.f(z);
b.f(3);
b.f(y);
b.f(z);
}
2019.09.13 22:04:34.295 tst (EURUSD,H1)(const) x = v
2019.09.13 22:04:34.295 tst (EURUSD,H1)(const) x = v
2019.09.13 22:04:34.295 tst (EURUSD,H1)(const) x = v
これは、すべて理解できる。SetSaveRequired()とGetSaveRequired()が非スタティックでありながら、スタティック変数に書き込む 理由は不明です。
私は直感的に操作できるモディファイアをあまり使いませんが、常にベストな解決策を求めます。
コードで試してみると、次のようになります。
publicGetSaveRequired()は、このすべての動物園の戦略を管理するクラスで使用 されています。
このパターンで、私は唯一のメソッドNextStepStrategyを書く - それだけでTCの変更、他のすべては同じであり、したがって、ベースクラス CStrategyに 私はすべてのメソッドとすべてのフィールドを収集 - 彼らはあまりありません。
ZS:私の背中ではなく、エース私のコードを感じるが、それは間違いなく動作し、変数f_save_requiredの 重複を作成することはありません。
私はモディファイアをほとんど使わず、もっと直感的に使っているのですが、いつも通りベストな解決策を求めます。
コードで試してみると、次のようになります。
publicGetSaveRequired()は、このすべての動物園の戦略を管理するクラスで使用 されています。
このパターンで、私は唯一のメソッドNextStepStrategyを書く - それだけでTCの変更、他のすべては同じであり、したがって、ベースクラス CStrategyに私はすべてのメソッドとすべてのフィールドを収集 - 彼らはあまりありません。
ZS:私の背中ではなく、エース私のコードを感じるが、それは間違いなく動作し、変数f_save_requiredの 重複を作成することはありません。
私なら、これらの機能を完全に削除します。
構造を変えない関数はすべて定数にする。
定数でない関数はすべて書き込みフラグを設定する必要があります。
また、Save( int fileHandle ) 関数を追加します。この関数は、構造体を書き込み、フラグをリセットする必要があります。
フラグの状態を取得するスタティックな関数を作ればいいのです。
私なら、これらの機能を完全に削除します。
構造を変更しない関数はすべて定数にする。
定数でない関数はすべて書き込みフラグを設定する必要があります。
言っとくけど、一般的に修飾語は苦手なんだよ。
SZY:一方、プログラミングの議論のWebで一般的に何が起こっているか - ここに先月hubraにconstに関する記事があった、意味は - このconstは必要ありません、見てアセンブラコードはconstなしで違いはありません - コンパイラがそれをすべて取り去る(()。
言っとくけど、一般的に修飾語は苦手なんだよ。
ググって、読んで、また何かが狂って......。
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
ググって、読んで、また何かが狂って...。
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
これは定数クラスのオーバーロードです。
うーん...そうか、30分近くかけてハブもフォーラムも読んだんだけど、コツがつかめなかったんだ。
ありがとうございます。
そんな例の疑惑が残っている。
2019.09.13 22:04:34.295 tst (EURUSD,H1) (const) x = v
2019.09.13 22:04:34.295 tst (EURUSD,H1) (const) x = v
2019.09.13 22:04:34.295 tst (EURUSD,H1) (const) x = v
2019.09.13 22:04:34.295 tst (EURUSD,H1) const
2019.09.13 22:04:34.295 tst (EURUSD,H1) const
2019.09.13 22:04:34.295 tst (EURUSD,H1) const
現在の講義をダウンロードすることができます。ここまではもちろん、些細なこと。
今、OOPの講義を受講しています。 多分、学んだことをシェアすることになると思います :))
現在の講義をダウンロードすることがあります。ここまではもちろん、些細なこと。
まあ、あなたの講義はちんぷんかんぷんでしょうし、こちらではロシア語はほとんど学べないし、インターネットは3周目だし......。 全体的な状況は、このフォーラムのような厳しいもので、本当のプログラマーは、リソースに10人以上おらず、残りはオタクです。
よし、全体的な状況はconstでクリアしたし、残りのモディファイで動いたから、理論的には ...応用しないといけないのですが、学生気分で )))。
まあ、あなたの講義はちんぷんかんぷんでしょうし、こちらではロシア語はほとんど学べないし、インターネットは3周目だし......。全体的な状況は、このフォーラムのような厳しいもので、本当のプログラマーは、リソースに10人以上、残りはオタクです。
よし、全体的な状況はconstでクリアしたし、残りのモディファイで動いたから、理論的には ...学生気分で ))) 。
はい、私も似たような状況です。学ぶことは難しいことではなく、再訓練、古い習慣を断ち切ることが難しいのです。私はいまだに手続き型プログラミングの悪い習慣を捨てられないでいます。
例が欲しいな、言っとくけど私は修飾語が全然ダメなんだ。
SZY:また、一般的にプログラミングの議論のWeb上で何が起こっているか恐ろしい - ここでは先月hubraにconstについての記事だった、意味は - はい、我々はこのconstを必要としない、見てアセンブラコードはconstなしでその違いはありません - コンパイラがすべてを削除します(((()。
定数や静力学のことは、とりあえず忘れていただいて結構です。インターフェースについても。
そして、すべての準備が整ったら、何かを静的、何かを定数として見てマークします。 そして、インターフェイスのことは完全に忘れることができます。