Ошибки, баги, вопросы - страница 1891
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Да, старый билд.
Вы вот это потрите, вводит в заблуждение и напрямую противоречит функционированию dynamic_castВ рамках поднятого примера кастинга в лоб CLASS1 -> CLASS2 все верно сказал. Именно такой кастинг в большинстве случаев люди и имеют в голове.
Кроме того, именно "нельзя приводиться снизу вверх, только сверху вниз" лежит в основе проверки безопасности dynamic_cast.
Те, кто знает что делает, тот понимает суть динамического кастинга.
Не забывайте обновляться на последние билды. Я сейчас тестируюсь на 1598, который выкладывался недавно в виде зипов в этой ветке вроде.
Компилятор и исполнитель в каком exe-файле сидит?
Сейчас в MT4b1080 идет MEb1599. Прошу пояснить, что делает metaeditor.exe и terminal.exe.
Компилятор и исполнитель в каком exe-файле сидит?
Сейчас в MT4b1080 идет MEb1599. Прошу пояснить, что делает metaeditor.exe и terminal.exe.
Компилятор для обоих платформ единый. Он в metaeditor.exe
А исполнитель, который проверяет тот же dynamic_cast, в terminal.exe ?
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
fxsaber, 2017.05.11 13:26
Почему EX5 такого кодавесит 5 Кб?
Еще такой вопрос
Работа протектора.
объясните пожалуйста что такое протектор в программировании
Да, вот пример, демонстрирующий ваш вопрос:
и вывод:Сначала проверяем неразрешенный кастинг снизу вверх и получаем NULL. Все верно.
Потом создаем объект CLASS2, присваиваем ссылку на него родительскому классу (тут важно понять, что в динамике среда знает, что исконный тип объекта CLASS2 - это хранится в его метаинформации). Далее (как раз ваш вопрос) динамически кастим (с проверкой права преобразования на основе метаинформации исходного объекта) из ссылки CLASS1 в CLASS2.
Проверяем результат кастинга и прописываем в переменную i = 1. В финале выводим значение i, обращаясь к исходно созданному объекту.
Все работает верно и по спецификации (включая dynamic_cast спеку самого C++).