Ошибки, баги, вопросы - страница 3305
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Тогда, похоже, никак.
Т.е., для родительских классов, если мы не планируем создавать их объекты, фактически имеет смысл только конструктор по умолчанию (или выполняющий, вопреки документации, его роль конструктор со всеми параметрами по умолчанию)?
Т.е., для родительских классов, если мы не планируем создавать их объекты, фактически имеет смысл только конструктор по умолчанию (или выполняющий, вопреки документации, его роль конструктор со всеми параметрами по умолчанию)?
На случай, если в потомке надо определять параметры для инициализации родителя, я бы делал метод инициализации в родительском классе, объявив его как protected.
Собственно, так и делал.
Но, думается, на такой вызов конструктора, как у меня выше, компилятор должен выдавать ошибку или хотя бы предупреждение о бесполезности кода, а не делать вид, что всё хорошо, тем самым внося трудноуловимые ошибки.
Это я что-то не понимаю, или тут действительно что-то не так?
Результат:
Конструктор с параметрами по умолчанию используется как конструктор по умолчанию (первый вызов A::A(int)), хотя в документации сказано, что это не так:
"Конструктор, все параметры которого имеют значения по умолчанию, не является конструктором по умолчанию." https://www.mql5.com/ru/docs/basis/types/classes#default_constructor
Второй вызов A::A(int) (из B::B(int) ) устанавливает значение a1, которое после "исчезает".
Когда выполняется тело конструктора класса B, конструктор его родительского класса уже отработал.
Если Вы не вызываете его явно в списке инициализации, то используется конструктор по умолчанию.
B::B( int b ) { A( b ); }Этот код равен этому:
B::B( int b ) : A() { A( b ); }В теле конструктора класса B Вы создаёте временный объект класса A, который уничтожается сразу при выходе из конструктора.
Но, думается, на такой вызов конструктора, как у меня выше, компилятор должен выдавать ошибку или хотя бы предупреждение о бесполезности кода, а не делать вид, что всё хорошо, тем самым внося трудноуловимые ошибки.
Когда выполняется тело конструктора класса B, конструктор его родительского класса уже отработал.
Если Вы не вызываете его явно в списке инициализации, то используется конструктор по умолчанию.
Этот код равен этому:
В теле конструктора класса B Вы создаёте временный объект класса A, который уничтожается сразу при выходе из конструктора.
Дело в том, что у него в классе A есть конструктор, а это означает, что конструктора по умолчанию в классе A нет. Поэтому результат поведения, который был показан выше, ошибочен. По-хорошему, компилятор должен был выдать ошибку.
Я дико извиняюсь, а что за хреновина с версией 3660 (судя по названию файла)? Никогда такого не было...
Изредка из-за полиморфной защиты какие-то сигнатуры файла могут быть схожими с вредителями.
Обратите внимание, что ругался просто на попытку сохранить шифрованный и подписанный пакет обновления (его нельзя запустить), а не при запуске распакованного exe файла. То есть, это не реакция на исполнимый файл.
Все пакеты обновления подписаны нашим дополнительным RSA приватным ключом и не могут быть сохранены на диск, если пакет не подтвердится публичным ключом. Поэтому риска получить левый файл нет вообще.
Кроме того, все выполняемые файлы подписаны нашей Code Signing цифровой подписью
В общем, как обычно, ложная тревога.
Изредка из-за полиморфной защиты какие-то сигнатуры файла могут быть схожими с вредителями.
Обратите внимание, что ругался просто на попытку сохранить шифрованный и подписанный пакет обновления (его нельзя запустить), а не при запуске распакованного exe файла. То есть, это не реакция на исполнимый файл.
Все пакеты обновления подписаны нашим дополнительным RSA приватным ключом и не могут быть сохранены на диск, если пакет не подтвердится публичным ключом. Поэтому риска получить левый файл нет вообще.
Кроме того, все выполняемые файлы подписаны нашей Code Signing цифровой подписью
В общем, как обычно, ложная тревога.
Почему администрация не участвует в ветке про фриланс и игнорирует озвученную мной проблемы, имеющие реальный прецедент?
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Что думают о сервисе Фриланс разработчики на MQL5
Aleksey Vyazmikin, 2023.03.16 13:03
По факту в сервисе Фриланс договор разбит на три части:
1. Обязанности заказчика в ТЗ.
2. Обязанности Исполнителя и Заказчиках в "Правила использования сервиса "Фриланс"".
3. В условиях оплаты и сроках исполнения заказа.
В момент заключения договора, эти пункты договора принимаются обеими сторонами.
Пункт 3 - оплата и сроки исполнения - является существенной частью договора, и не может в одностороннем порядке меняться.
В моём случае, это существенно ухудшает права Исполнителя, так как согласно заключенному договору срок оказываемых услуг ограничен именно пунктом 3.
Считаю, что факт возможности изменения условий Договора в одностороннем порядке нарушает права Исполнителя, что дискредитирует данный Сервис Фриланс.