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
以前是这样的,也许现在不同了,但我怀疑。
编译错误
编译错误
...
它应该是这样的。
它应该是这样的。
编译错误
编译错误