Ошибки, баги, вопросы - страница 3659

Aliaksandr Yemialyanau #:

Почти месяц агенты ничего не зарабатывают. В чём проблема?

Агенты активны:


У меня работают:


Putnik #:

У меня работают:


путник какой у тебя PR на проце ?
ruslan #:
путник какой у тебя PR на проце ?

AMD Ryzen 9 7950X

Сегодня

override виртуального метода без прописывания virtual - это нормально?
class A
{
public:  
  virtual void f() {}
};

class B : public A
{
public:
  /* virtual */void f() override {} // virtual не прописан - нормально?
};
fxsaber #:
override виртуального метода без прописывания virtual - это нормально?

Смотрите этот пост и 2 предыдущих

https://www.mql5.com/ru/forum/1111/page3307#comment_45894972

Vladislav Boyko #:

Смотрите этот пост и 2 предыдущих

https://www.mql5.com/ru/forum/1111/page3307#comment_45894972

Спасибо, прочел. Но так и не понял, почему отсутствие virtual разрешается.

fxsaber # :

Спасибо, прочел. Но так и не понял, почему отсутствие virtual разрешается.

«f» уже является виртуальным из базового класса.

Igor Zakharev #:
Всем привет. Такой вопрос есть. Кто-нибудь пытался синхронизировать время из Market Watch с таймером советника, что бы секунды ровно шли? Актуально для панелей например.

А в теории это разве возможно? Как я понял, время от сервера транслируется вместе с котировкой, а значит есть транзакционные задержки, которые нестабильны.

fxsaber #:

Спасибо, прочел. Но так и не понял, почему отсутствие virtual разрешается.

Метод попадает в таблицу виртуальных функций при первом объявлении его с ключевым словом virtual. Далее метод остается виртуальным не зависимо от того, указываете ли вы virtual в производных классах. Вы не можете "убрать" метод из таблицы виртуальных функций, вы лишь можете запретить дальнейшее переопределение с попощью final.

После того обсуждения я никогда не указываю virtual при переопределении метода, но я всегда обязательно указываю override. Прошло больше 2х лет, как я перестал указывать virtual для методов, которые уже виртуальные из базового класса.