错误、漏洞、问题 - 页 1109

 
但这样它也不会报告错误

#define  MCR


int OnInit()
{
        EventSetTimer(10);
        return ( INIT_SUCCEEDED );
}

ifdef  MCR
        #define  NUM             1
#else
        #define  NUM             2
#enif //случайная ошибка

void OnTimer()
{
        EventKillTimer();
        Print( NUM );
}
 
所以
class A {
public:
        void f() {}
};

void OnStart()
{
        const A a;
        a.f(); //компилятор выдает ошибку

}
编译器有理由给出一个错误,但这种方式
class A {
public:
        void f() {}
};

void OnStart()
{
        const A *a = new A();
        a.f(); //компилятор не выдает ошибку
	delete ( a );
}

它没有。有什么区别?
 

为什么一个MetaQuotes-Demo终端910在 "新闻 "标签里有一个 "时间 "列

而在不同的电脑上的同一个人却没有?


而 "类别 "菜单则不同。计算机是相同的,操作系统=Windows 7。专家顾问没有运行。在物理上不同的计算机上的Brokerage 880终端中,在所有其他条件相同的情况下,除了 "类别 "菜单是相同的,其他情况都是相似的。

 
编译错误。
class A {
public:
        void f( int z ) { a = z; }
        int a;
};

class B {
public:
        B() { a = new A(); }
        ~B() { delete( a ); }
        void g( int z ) const { a.f( z ); } //error: call non-const method for constant object
        A *a;
};

为什么会出现错误?

非常数a.f( z )本身不能改变指针B::a,只有它所指向的对象A才能改变它。但对象A不是B的成员,所以它不受变化保护。如果你用->代替.,一切都可以在C++中编译而不出错。如果它被宣布为

class B {
public:
//...
        const A *a;
};
那么是的--不仅对象的指针不能被改变,而且对象本身也不能被改变,而且会有一个错误
 

尝试在MetaEditor=910中打开所附文件err1.mqh。

假设操作系统=Windows 7\32,err1.mqh和err2.mqh存在,err2.mqh在err1.mqh中的路由正确(或者它们在同一个文件夹中),以及以下MetaEditor设置

我甚至不能让它打开。我排除了不必要的代码,只留下问题的本质--几行

附加的文件:
Err1.mqh  1 kb
Err2.mqh  1 kb
 

这条线是怎么回事?每隔五分钟,论坛就会显示这个主题有新的帖子--但当你进来时,却发现这里什么都没有。

P.S. 不要再无休止地对你的帖子进行小的编辑,以使主题达到顶峰。

 

这一期的杂志是来自未来的什么?

未来

 
barabashkakvn:

这一期的杂志是来自未来的什么?


好吧......。入口已关闭...该日期没有更多的问题...(((

反正对我来说是这样。

 
还有,存储库什么时候能连接到MetaEditor4?
 
barabashkakvn:
存储库何时能与MetaEditor4连接?
它已经连接起来了。