Ошибки, баги, вопросы - страница 3452
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Благодарю Вас за время и усилия, что уделили моей задаче! Ваш вариант формально выполняет требуемое, при этом в некоторых ситуациях пользоваться им очень сложно: получить значение поля.
Можно попробовать добавить имя переменной, как строковой параметр. А доступ к значению через CHashMap.
Отсутствие ошибки в выделенной строке (указатель равен объекту) - правильно?
Вроде, все однозначно, но компилятор ругается.
Вроде, все однозначно, но компилятор ругается.
Ваш код содержит несколько ошибок. Давайте разберем их по порядку:
A* a1 = A(); A* a2 = &A();
Здесь вы пытаетесь присвоить временный объект типа A указателю a1 . Это вызовет ошибку компиляции, потому что A() создает временный объект, который уничтожается сразу после этого выражения, и вы не можете безопасно присвоить его указателю. Вместо этого, вы должны использовать оператор new для создания объекта в динамической памяти:
В случае с a2 , вы пытаетесь получить адрес временного объекта, что также недопустимо.
A* a1 = new B(0); // fatal compiler error: constructor of class 'B' not found A* a2 = new B<int>(0); // OK
Здесь вы пытаетесь создать объект типа B с помощью шаблонного параметра, который не указан. Компилятор не может определить, какой тип использовать для T в B(0) , поэтому возникает ошибка. Вместо этого, вы должны явно указать тип параметра, как вы делаете в следующей строке:
Это исправит ошибку компиляции. Надеюсь, это помогло! Если у вас есть еще вопросы, не стесняйтесь задавать.
Ваш код содержит несколько ошибок.
Проверьте пожалуйста корректность работы функции советника на каком-нибудь фьюче. Похоже критический баг для расчета маржи - всегда возвращает 0.
Если выдаёт значение отличное от нуля напишите что за билд?
Спасибо!
class A {}; template <typename T> class B : public A { public: B( T ) {} }; void OnStart() { A* a1 = new B(0); // fatal compiler error: constructor of class 'B' not found A* a2 = new B<int>(0); // OK }
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
Anatoli Kazharski, 2024.01.16 16:59
Можно попробовать добавить имя переменной, как строковой параметр. А доступ к значению через CHashMap.
Вот такой вариант:
//---
Результат:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
Yuriy Vasilyev, 2024.01.16 22:31
Вы сделали две идентичные записи, потеряв суть вопроса.
Вот такой вариант:
Спасибо еще раз! Сделал такой вариант с примерами использования.