voidOnStart()
{
A *a = new A;
if ( a == a ) Print( "1" ); //сравнение указателей как чиселif ( a >> a ) Print( "3" ); //вызывается operator<<( A *)
}
我们建议通过只通过特殊函数比较指针来消除这种情况
voidOnStart()
{
A *a = new A;
if ( isEqualPoiner( a, a ) ) Print( "1" ); //сравнение указателей как чиселif ( a == a ) Print( "2" ); //вызывается operator==( A *)if ( a >> a ) Print( "3" ); //вызывается operator<<( A *)
}
哪些指针操作不是无意义的?
这就是现在的方式(与对象一样的重载),一切似乎都很好。但在有意义的(==和!=)和其余的之间存在着矛盾
作为
我们建议通过只通过特殊函数比较指针来消除这种情况
一个用于比较指针的特殊函数可以设计如下
我有一个不谨慎的问题要问你。你要分享你的经验吗?
你是为数不多的积极和不断使用模板和宏的人之一。而且你可能有大量的累积代码。
我不知道其他人怎么样,但我很想看看你的代码和你的发展,如果你有的话,你不介意与公众分享。
我不知道...模式的实施,你对指标、图表等工作的包装器...
我如何使用模板?- 为了缩短一个条目。例如,MQL中没有逗号操作。比方说,有一个记录
然后有一个模式template<typename T 1, typename T 2> T2 opComma( T1 expression, T2 assignment_expression ) { return ( assignment_expression ); }而不是4行,我们有一个
我如何使用宏程序?- 再次--为了缩短记录。例如,MQL中没有类模板。不是问题--我们使用一个宏
随后就可以宣布
datetime dt; MDT( dt_struct, dt )例如,比特复制是通过模板实现的,因为可以同时涉及几个类型