template<typename T>
class A { public:
booloperator==( const A& ); //error: 'operator' - function must have a body
T t;
};
class B {
A<int> a;
};
template<typename T>
bool A::operator==( const A& ) { returnfalse; }
voidOnStart()
{
A<int> a, b;
Print( a == b );
}
template<typename T> class A {};
template<typename T> class B {};
class C {
template<typename T>
void f( B<A<T> > * ) {}
B<A<int> > *b;
public:
void g() { f( b ); } //error: 'f' - cannot to apply function template
};
と思っているあなた
はポインタを変更することはできませんが、ポインタが参照するオブジェクトを変更することはできます。まあ、MQL5にはそんな変更できないポインターはないんですけどね。したがって、const 修飾子は常にポインタが参照するオブジェクトを参照する。
では、ここにある定数ポインターはどこにあるのでしょうか!
f()、g()メソッドでは、a ポインタは一定となる。
まあ、MQL5にはそんな変更できないポインターはないんですけどね。したがって,const 修飾子は常にポインタが参照するオブジェクトを参照することになる
このような断定的な結論は、このテーマについて十分な知識がない限り出すべきではありません。 MQLは定数ポインタを持ち、C++と同じ方法で宣言しています。
十分な知識がないまま、このような断定的な結論を出すべきではありません。 MQLでは定数ポインタが存在し、C++と同じように宣言されます。
開発者の説明を覚えている限りでは、定数はオブジェクトとポインタの両方に適用されます。
MQLのconst T* === C++のconst T* constと書く。
以前もそうでしたし、今は違うのかもしれませんが、どうなんでしょうね。
コンパイルエラー
コンパイルエラー
...
こうあるべきでした。
こうあるべきでした。
コンパイルエラー
コンパイルエラー