Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ты нашёл дыру в безопасности? )
А не лучше воспользоваться полиморфизмом?
Примерно так:
Дело в том, что у классов наследников CChartObjectRectLabel, CChartObjectButton и CChartObjectEdit, есть свои уникальные методы, к которым нужно получить доступ. А у базового класса CChartObject из стандартной библиотеки нет таких же виртуальных.
На моём примере выше...
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Обсуждение статьи "Когда нужно использовать указатели в MQL5"
tol64, 2014.11.05 14:47
А можно ли создать массив с объектами разных типов?
Допустим вот такой пример:
//---
Как получить доступ к методам классов наследников?
...получилось вот так:
Ага. Так напрямую кастовать неправославно. В плюсах специально для этого есть dynamic_cast, здесь полностью корректно привести не получится и это потенциальный источник неявных и серьезных ошибок. И по серьезности это ненамного лучше чем небезопасные указатели и ссылки.
Да, прежде чем сюда на форум вопрос задавать в сети нашёл, что в C++ есть оператор dynamic_cast (механизм динамической идентификации данных).
Вот смотрю сейчас по ссылке выше:
То есть, это обязательное условие? И если в базовом классе нет ни одного виртуального метода, то dynamic_cast работать не будет?
P.S. >>> Вот здесь ещё читаю о dynamic_cast (MSDN).
Блин, и вы после этого про безопасность языка говорите?
Вероятно, вы думаете, что можно свободно приводить к чему угодно как в С/С++.
Это не так и с безопасностью все в порядке.
Вероятно, вы думаете, что можно свободно приводить к чему угодно как в С/С++.
Это не так и с безопасностью все в порядке.
Случайно получил вот такую ошибку, что похоже подтверждает Ваши слова. )
Это не так и с безопасностью все в порядке.
Нет, нельзя нормально сделать проверку dynamic_cast в время компиляции.
Комментом выше показ результат проверки кастинга в рантайме.
Он у нас очень жесткий, работает на RTTI механизме, так как мы точно знаем кто есть кто при приведениях.
Комментом выше показ результат проверки кастинга в рантайме.