Форум программистов, компьютерный форум CyberForum.ru

Частое использование dynamic_cast в конкретных целях. Правильно ли? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Запуск любой программы, в частности установочных, автоматически закрывается http://www.cyberforum.ru/cpp-beginners/thread1066162.html
Операционную систему установил где-то месяц назад. С подобной проблемой столкнулся в-первые за всю свою историю жизни. Антивирусов еще не имею, какие-либо программы на установку не шли (кроме яндекс бара и другой бредятины). Сегодня скачал игру, точнее клиент (WоP) и когда открывается окно установки, по истечению нескольких секунд, окно автоматически закрывается. Не имею представлений и сведений...
C++ Генетический алгоритм подбора максимума/минимума разных функций Собсно, вот: #include <iostream> #include <cstdlib> #include <ctime> #include <algorithm> #include <numeric> #define FIRST -50 #define LAST 50 http://www.cyberforum.ru/cpp-beginners/thread1066157.html
Нахождение простого элемента в массиве C++
Не получается вывести простое число из массива. Подскажите пожалуйста, в чем ошибка? #include <iostream> #include <conio.h> #include <cstdlib> using namespace std; int main() {
Шаблонный класс "множества". Операции над множествами C++
Доброго времени суток. Суть моего задания заключается в создании шаблонного класса "множества" и затем операции над этими множествами(пересечение, объединение, разность, прямое произведение). Я пока пытаюсь написать код для реализации "пересечения" 2х множеств. Прошу указать на мои ошибки, помочь доработать код.. (я написал класс(нужно написать еще конструктор класса), шаблонную функцию для...
C++ Найти в файле самую длинную строку и переписать её в другой файл http://www.cyberforum.ru/cpp-beginners/thread1066115.html
всем привет возник такой вопрос есть файл в который вносятся числа разного количества. по этому есть несколько строк введённых чисел. вопрос в следующем как можно найти самую длинную строку и переписать её в другой файл?
C++ Нежелательное добавление информации в файл, исправить код Помогите переделать, я запутался, делал с преподом задачу. В общем есть файл например 6256 Mihin 4560 4322 Muhin 4500 7756 Kuzin 1900 4622 Komarov 9000 3322 kyznec 4000 таб номер, фамилия и оклад. У меня есть функция которая формирует хеш тамбл, но в ней у меня и фуекция добавления и получается что когда я запускаю программу, она дописывает в файл уже что есть и добавляет ещё. Я думаю... подробнее

Показать сообщение отдельно
anonym17
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21

Частое использование dynamic_cast в конкретных целях. Правильно ли? - C++

08.01.2014, 22:44. Просмотров 961. Ответов 21
Метки (Все метки)

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

- Есть библиотечный абстрактный класс Drawable.
Я наследую его, чтобы создавать разные геометрические объекты.
- Есть класс Polygon - используется как сцена. У него есть поле list<Drawable*> m_drawables и метод Add(Drawable* drawable).
Суть метода Add в том, что он рассчитывает наилучшую позицию для расположения фигуры и кидает его в полигон, т.е, записывает в m_drawables.

Не по теме:

Метод Update циклом прокручивает эти объекты, шагом вызывая метод api.Draw(*it)



Так вот, так как для разных фигур нужны разные расчёты, а я узнаю тип фигуры приведением типа(заодно и получаю доступы к методам конкретной фигуры) используя dynamic_cast.
Пример:
C++
1
2
3
4
5
6
7
8
9
void Add(Drawable* drawable)
{
...
    if (Parallelogram* pg = dynamic_cast<Parallelogram*>(drawable))
    {
        ...
    }
...
}
Это нормально или есть более лучший архитектурный подход?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru