Форум программистов, компьютерный форум, киберфорум
C/C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C/C++ Вычисление обратной точки Доброго времени суток, форумчане. Сейчас решил реализовать вычисления на эллиптических кривых. Операция сложения, умножения точки работает корректно. Вот с вычислением обратной точки возникли проблемы. Как я правильно понимаю, допустим есть точка Р с координатами (х, у), то точка -Р имеет координаты (х, х+у). Я к точке Р прибавляю точку Q с координатами (0, х). И когда получившуюся точку -Р... https://www.cyberforum.ru/ c-cpp/ thread2987816.html C/C++ Проблема с вылетом программ
Суть проблемы в том, что при работе с любыми программами(word,vs 22,vs code), при добавлении файла или сохранении этого же файла, программа мигом вылетает, а если же использовать горячие клавиши, то нет, с чем же это может быть связано?(Извиняюсь за вопрос не по теме не знал куда его засунуть)
C/C++ AllocConsole https://www.cyberforum.ru/ c-cpp/ thread2987555.html
Добрый день. Подскажите пожалуйста, кто шарит. Решаю я значит crackme, консоль с вводом пасса запускается через AllocConsole. Запускаю таск в x64dbg и при вызове AllocConsole программа закрывается наглухо - нельзя даже посмотреть GetLastError. Я понял, что это, какой-то антиотладочный трюк, так как без отладчика - всё хорошо. Далее я решил залезть внутрь AllocConsole и посмотреть, что именно...
C/C++ Использование обхода в глубину для поиска точек сочленения графа Попробовал сделать функцию для поиска точек сочленения графа через обход в глубину, весь интернет перекопал, но так и не смог интерпретировать это на СИ, получился такой код,вроде верный, но точки он не ищет, можете подсказать что может быть не так? Массив Matrix это изначальный массив графа где указаны связи. matrix имеет вид 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0... https://www.cyberforum.ru/ c-cpp/ thread2985432.html
Какой язык программирования лучше всего выбрать для бизнеса С+ С++? C/C++
какой язык программирования лучше всего выбрать для бизнеса с+ с++?
C/C++ C++. Есть ли альтернативы и/или конкуренты? https://www.cyberforum.ru/ c-cpp/ thread2982685.html
Хотелось бы узнать,по возможности подробнее,есть ли у С++ на сегодня альтернативы и/или конкуренты,исходя из критериев скорости выполнения программы,возможностей,универсальности и т.п.?
C/C++ С++ fstream чтение файла в кодировке utf-8 и вывод в консоль Всем привет. Столкнулся с проблемой что не могу считать файл с кодировкой UTF-8. При обычном чтении файла ifstream читает в кодировке ANSI. Я нашел на форуме строки кода с locale. ... https://www.cyberforum.ru/ c-cpp/ thread2982602.html Задание с объединением C/C++
Имеется список граждан в виде: 1) фамилия; 2) образование (ниже среднего, общее среднее, среднее специальное или высшее); 3) если образование высшее - специальность и название высшего учебного заведения; если среднее специальное – специальность; если общее среднее - возраст сотрудника, если ниже среднего – то ничего. Составить упорядоченный по возрасту (по возрастанию) список сотрудников...
C/C++ Нужно сделать меню для классов в C++ https://www.cyberforum.ru/ c-cpp/ thread2981799.html
нужно сделать Меню т.е. когда выбираешь первое(Информатика и вычислительная техника ) должно вывести одного студента со средним балом второе (Механика и математическое моделирование) также вывести другого и с третьей кафедрой тоже самое помогите пожалуйста #include<iostream> #include<string> using namespace std;
C/C++ Построение СКНФ СДНФ Здравствуйте! Программа заключается в том, чтобы построить СКНФ/СДНФ огромного булевого выражения. Так как пользователю проблематично руками написать выражение в несколько тысяч знаков был сделан генератор, который по заранее известному количеству переменных и членов в СКНФ/СДНФ "разворачивает" выражение в какое-то большое случайным образом. Далее это выражение подается в функцию построения... https://www.cyberforum.ru/ c-cpp/ thread2980948.html
Итерационные процессы и циклы C/C++
Помогите с формулой, как ее можно просто вывести на Си. Не решать.
C/C++ Как скрыть и/или закрыть доступ к данным файла? https://www.cyberforum.ru/ c-cpp/ thread2979939.html
Программа состоит из управляющей программы(УП) и базы данных(БД),которая организована из нескольких файлов,содержащих текст и некоторые символы клавиатуры.УП использует обьекты STL,в которые загружаются данные из БД,а потом обрабатываются.К данным БД должен быть доступ УП и пользователю по паролю с интерфейса УП.Если возможно,не очень снижая скорость загрузки и/или обработки, "прикрыть" и обьекты...
495 / 209 / 70
Регистрация: 27.05.2016
Сообщений: 557
0

dynamic_cast не всегда работает правильно - C/C++ - Ответ 16252555

22.05.2022, 01:14. Показов 1142. Ответов 8
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите разобраться в проблеме. Есть большой проект, разбитый на разные библиотеки. В одной из библиотек конструируется объект (наследник от абстрактного класса). Дальше он передается в код другой библиотеки, которая в последствии, в нужный момент, вызывает dynamic_cast для требуемого типа. На примере выглядит примерно так:

common.lib
C++
1
2
3
4
std::shared_ptr<AbstractClass> abstractClassPtr;
abstractClassPtr = std::make_shared<CustomClass>(args...);
 
handlerPtr->setAbstractClass(abstractClassPtr);
other.lib
C++
1
2
3
4
5
Handler::setAbstractClass(std::shared_ptr<AbstractClass> abstractClassPtr)
{
    std::shared_ptr<CustomClass> casted  =  std::dynamic_pointer_cast<CustomClass>(abstractClassPtr);
    // casted == nullptr in some cases
}
Суть проблемы: на Windows и Linux все работает без проблем. На MacOS dynamic_pointer_cast возвращает nullptr и то не всегда, например, каст может успешно пройти в дебаг сборке, а в релиз уже не проходит, или наоборот. При єтом, полиморфизм работает исправно (виртуальные методы вызываются правильно для нужного объекта).

Подскажите, в какую сторону копать или что почитать по этому поводу.

Вернуться к обсуждению:
dynamic_cast не всегда работает правильно C/C++
0
Заказать работу у эксперта
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.05.2022, 01:14
Готовые ответы и решения:

Программа не всегда работает правильно
Всем добрый вечер. Реализовал программу, подсчитывающую корень уравнения методом...

Прога не всегда работает правильно..
Задача: Построить максимальное множество, состоящее из попарно не сравнимых векторов v. Векторы v...

Функция, описывающая массив, работает но не всегда правильно
Задание такое: Написать функцию, которая находит в массиве наименьшее абсолютное значение по модулю...

Частое использование dynamic_cast в конкретных целях. Правильно ли?
Привет, форум. Гуманно ли использовать dynamic_cast вот в таких случаях? Пример из подобных -...

Не всегда правильно работает scrollToItem()?
Работая в Momentix QNX, столкнулся с тем, что метод scrollToItem() класса QTableWidget не...

8
22.05.2022, 01:14
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.05.2022, 01:14
Помогаю со студенческими работами здесь

Не всегда программа работает правильно
Задание: найти наименьший элемент первого массива, который не входит во второй массив. Обращение к...

Минимизация ФАЛ не всегда работает правильно
Имеется программа для минимизации ФАЛ: uses crt; type koeff=record up:string; ...

Как работает dynamic_cast
Почему все if-ы срабатывают? void print(Shape *shape) { if (dynamic_cast&lt;Point*&gt;(shape)) ...

"ПросроченнаяЗадолженностьПокупателей" не всегда работает правильно
Здравствуйте. Искал, но не нашёл в интернетах, почему этот стандартный отчёт ( БП 2.0 ) на...

Static , dynamic_cast, - ( Sender ) не работает сортировка корректно со вторым стринггридом!
Всем привет! :senor: сразу вопрос. есть PageControl с двумя вкладками. на каждой есть...

0
Новые блоги и статьи
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций История планшетных компьютеров началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые. . .
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
Как объединить два словаря одним выражением в Python
InfoMaster 19.01.2025
В мире программирования на Python работа со словарями является неотъемлемой частью разработки. Словари представляют собой мощный инструмент для хранения и обработки данных в формате "ключ-значение". . . .
Как без исключения проверить существование файла в Python
InfoMaster 19.01.2025
При разработке программного обеспечения на Python часто возникает необходимость проверить существование файла перед выполнением операций с ним. Это критически важная задача, которая помогает избежать. . .
Как определить, содержит ли строка подстроку в JavaScript
InfoMaster 19.01.2025
При разработке веб-приложений часто возникает необходимость выполнять различные операции со строками, среди которых особое место занимает поиск подстрок. JavaScript предоставляет несколько встроенных. . .
Что такое метаклассы в Python
InfoMaster 19.01.2025
Метаклассы в Python представляют собой один из самых мощных и одновременно сложных механизмов языка, позволяющий программистам контролировать процесс создания классов. По своей сути, метакласс. . .
Как удалить свойство из объекта JavaScript
InfoMaster 19.01.2025
В современной веб-разработке объекты JavaScript играют фундаментальную роль в организации и структурировании данных. Они представляют собой контейнеры, которые хранят связанные данные и. . .
Какая разница между String и string в C#
InfoMaster 19.01.2025
В языке программирования C# существует интересная особенность: для работы со строками можно использовать как String, так и string. Эта двойственность часто вызывает вопросы у разработчиков, особенно. . .
Как в Git откатить репозиторий к предыдущему коммиту
InfoMaster 19.01.2025
В современной разработке программного обеспечения система контроля версий Git стала неотъемлемой частью рабочего процесса, предоставляя разработчикам мощные инструменты для управления изменениями в. . .
Как работают замыкания (closure) в JavaScript
InfoMaster 19.01.2025
В мире современной веб-разработки замыкания (closures) представляют собой один из фундаментальных концептов языка JavaScript, который часто вызывает затруднения у начинающих разработчиков, но при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru