Alexey Navoykov: const здесь распространяется лишь на указатель, а не на объект по этому указателю
class A { public:
voidoperator[]( int i ) {} // const отсутствует
};
class B { public:
const A *a; // к чему относится здесь const?
B(){a = new A; // явно не к указателю - нет ошибки
a[0];} //логично: 'operator[]' - call non-const method for constant object
~B() { delete a; }
};
class A { public:
voidoperator[]( int i ) const {} // const добавил
};
class B { public:
B() : a( new A ) {}
~B() { delete a; }
A *a;
void f() const { a.operator[]( 0 ); } // нет ошибкиvoid g() const { a[ 0 ]; } // нет ошибки
};
勉強したいのに、Googleはどこで間違ったのか理解してくれない。私の誤解を要約してください。あなたの例では、"normal "の行でコンパイラーエラーが発生していますね。私の考えでは、コンパイラはそれを非難すべきだったのです。
constはポインタのみを参照し、このポインタによるオブジェクトは参照しません。
言いたいことはわかるんです。でも、きっと何かの間違いだと思うんです。
MQL5でなければ、次のような書き方をしなければならない。
といった質問があったはずです。でも、これはMQL5です。フールプルーフコードは正義である、とIMHOは考えています。
Alexey Navoykov:
const здесь распространяется лишь на указатель, а не на объект по этому указателю
Aの端末にいくつかアカウントをお気に入りに入れています。これらのアカウントに1つずつ接続して、必要な情報を取得したいのです。
WinAPIでそのような接続をされた方はいらっしゃいますか?ぜひシェアしてください。
そのシンボルのデモ価格が最も高いブローカーを探しています。発想はこうだ
MQL5 には定数ポインタが ない!
あなたは正しく言われました:数学を勉強してください。 あなたの例では、定数オブジェクトへのポインタであり、定数ポインタではありません。
じゃあ、定数ポインターはどこにあるんだ!?