Форум программистов, компьютерный форум 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
09.01.2014, 06:08  [ТС]     Частое использование dynamic_cast в конкретных целях. Правильно ли?
Цитата Сообщение от DU Посмотреть сообщение
а вы и так и эдак попробуйте. будет вам опыт на будущее.
интерфейс добавления объектов в полигон остается одинаковым при обоих подходах.
так что то, как там все разруливается - деталь реализации.
с визитором однозначно более многословно все будет.
Примерно вот так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
class Visitor;
 
class Depictable : public Lib::Drawable
{
public:
    ...
    void SetPosition(vector2f const& coord);
    virtual void accept(class Visitor*) = 0;
    ...
}
 
class Parallelogram : public Depictable
{
public:
    ...
    void accept(Visitor*);
    ...
}
 
void Parallelogram::accept(Visitor *v)
{
    v->visit(this);
}
 
class Visitor
{
    ...
  public:
    virtual void visit(Parallelogram*) = 0;
    ...
};
 
class CalcPositionVisitor : public Visitor
{
    ...
public:
    CalcPositionVisitor(Polygon* polygon) : m_polygon(polygon) {}
    virtual void visit(Parallelogram*);
private:
    Polygon* m_polygon;
    ...
};
 
class Polygon
{
    ...
public:
    void Add(Depictable* depictable);
private:
    std::list<Depicatble*> m_depicatbles;
    ...
};
 
void Polygon::Add(Depictable* depictable)
{
    CalcPositionVisitor calcPosition(this);
    depictable->accept(&calcPosition);
    depictable->SetPosition(calcPosition.getPosition());
    
    m_depicatbles.push_back(m_depictable);
}
 
Текущее время: 11:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru