错误、漏洞、问题 - 页 2092

 
Renat Fatkhullin:

build 1711,在1709和1700上观察到同样的错误,我以前没有注意到。

- 如果我要求的开盘时间 不在历史上,那么CopyTime就会在未知的时间内冻结,例如我要求的开盘时间。

CopyTime(_ticker, _tf, _start, _stop, _buff)
где:
_ticker == RTS-9.12
_tf == PERIOD_M1
_start == D'2017.09.20 19:01'
_stop == D'2017.09.20 19:00'
_buff == динамический массив типа datetime

但由于晚间会议被移到了19:05,而且历史上没有这个时间间隔的条形图,那么,在调用该函数后,控制权没有被转移回程序,它就挂起。

虽然,该函数应该以错误退出。

 

执行中的错误

typedef void (*fn)();
struct A {
        fn a;
};
struct B : A {
        void a() {}
};
void OnStart()
{
        B b;
        b.a(); //error: invalid function pointer call
}
typedef void (*fn)();
void g() {}
struct A {
        A() : a( g ) {}
        fn a;
};
struct B : A {
        void a() {}
};
void OnStart()
{
        B b;
        b.a(); //вместо B::a() вызывается g()
}
 

编译错误

typedef void (*fn)();
struct A {
        fn a;
};
struct B : A {
        void a( int ) {}
};
void OnStart()
{
        B b;
        b.a( 2 ); //error: '2' - wrong parameters count
}

 
我不记得静态变量的细微差别。你能提醒我为什么这个混蛋要这样做吗?
class A
{
public:
  A()
  {
    A::f();
  }
  
  static void f()
  {
    static bool Tmp = true;
    
    Print(Tmp);
  }
};

void OnStart()
{
  static A a; // static - false, иначе - true;
}
 

关于交易、自动交易系统和交易策略测试的论坛

虫子,虫子,问题

A100, 2017.12.19 23:04

执行时出错

typedef void (*fn)();
struct A {
        fn a;
};
struct B : A {
        void a() {}
};
void OnStart()
{
        B b;
        b.a(); //error: invalid function pointer call
}
void g() {}
void OnStart()
{
        B b;
        b.a = g;
        b.a(); //вместо B::a() вызывается g()
}

在这两种情况下,似乎都是可以理解的原因--字段和方法的名称相同,所以对字段和方法的引用也完全相同。相应地,编译器会调用字段而不是方法。在第一种情况下,这个字段没有被定义,所以很扫兴。在第二种情况下,一切都很好--该领域被调用。

因此,如果我们在基类中声明一个方法,在子类中声明一个同名的字段,它将以不同的顺序工作。

编译器应该给出以下输出

declaration of 'a' hides member declaration at line 3
 
fxsaber:

因此,编译器会调用字段,而不是方法。

一个领域怎么会比一个方法好呢?例如,C++调用方法而不是字段--这是符合逻辑的--因为方法在派生类 中,所以它更接近。换句话说,如果派生类中的签名完全吻合,为什么要参与到基类中呢?

 
A100:

一个领域怎么会比一个方法好呢?例如,C++调用方法而不是字段,这是合乎逻辑的,因为方法是在派生类 中,所以它更接近。换句话说,如果派生类中的签名完全吻合,为什么要卷入基类中呢?

你确实意识到你已经创造了一个人为的情况,这应该总是伴随着编译器的警告。

关于 "更接近 "的问题,我写道

fxsaber:

如果你在基类中声明一个方法,在子类中声明一个同名的字段,它将以不同的顺序工作。

 
fxsaber:
我不记得与静态变量的细微差别。请提醒我,这个混蛋为什么会产生这个?

整个问题是变量初始化的 顺序和代码执行的顺序。

在逐步调试模式下,比用语言解释更容易理解。

 

自由职业者的奇怪错误。

有4项工作正在进行中,我拿了1项变成了5项,通过了1项,剩下5项。

我又接了一个工作,它说是5;我又接了一个工作,它说是6;我又接了一个工作,它说是4个工作,但它说6个工作正在进行中。

接受了另一份工作,有5项工程在进行中 7

现在我不能接受工作,虽然我只有5个工作机会

申请号

1913868

 
Aleksei Beliakov:

自由职业者的奇怪错误。

有4项工作在进行中。我接受了1项工作,变成了5项工作,通过了1项工作,剩下5项。

我又接了一个工作,它说是5;我又接了一个工作,它说是6;我又接了一个工作,它说是4个工作,但它说6个工作正在进行中。

另一个有5个作品但 "正在进行中 "的作品 7

现在我不能接受工作,虽然我只有5个工作机会

申请号

1913868

谢谢你的留言,正在进行修复。