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

Для чего именно и как исползуется dynamic_cast(обясните "ЯЗИКОМ ЧЕЛОВЕКА") - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Метод секущих (блок-схема) http://www.cyberforum.ru/cpp-beginners/thread428972.html
подскажите пожалуйста, правильно ли я составил блок-схему по методу секущих Скрин во вложении.. Вот листинг: #include <conio.h> #include <iostream> using namespace std; #include <math.h> const double E=2.718281828459; //функция double func(double x)
C++ Ошибка при компиляции template <class Data> List <Data>::~List() { if (pbeg !=0) { Node *pv = pbeg; while (pv) { pv=pv->next; delete pbeg; pbeg=pv; http://www.cyberforum.ru/cpp-beginners/thread428962.html
Смена иконки *.ехе при компиляции C++
Как можно в visual studio сменить иконку *.ехе при компиляции программы?
C++ Использование собственного класса строк
Здравствуйте, уважаемые господа. Есть реализация собственного класса строк: class MyString { private: size_t length; char *str;
C++ С++ перенаправить на подгрузку другого ***.ехе http://www.cyberforum.ru/cpp-beginners/thread428946.html
Подскажите, как мне перенаправить загрузку на другой файл? Тоесть мне нужно написать мини програмку, при запуске которой будет подгружаться например последовательно 2 файла, подскажите хотябы функцию..заранее спасибо
C++ Удалить одинаковые слова предложения, идущие подряд Объясните как это сделать с помощью библиотеки <string.h> Удалить одинаковые слова предложения, идущие подряд. подробнее

Показать сообщение отдельно
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
16.01.2012, 02:31     Для чего именно и как исползуется dynamic_cast(обясните "ЯЗИКОМ ЧЕЛОВЕКА")

Не по теме:

LK, ну, это был сарказм))) И ни в коем случае не камень в твой огород



Добавлено через 3 минуты
Programmer., вот вам пример применения dynamic_cast. Что будет не понятно - спрашивайте.
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
62
63
64
65
66
67
68
69
70
71
#include <iostream>
 
class MainBase
{
public:
    virtual void main_base_func() const = 0;
};
 
class MainDerived1 : public MainBase
{
public:
    virtual void main_derived1_func() const = 0;
};
 
class MainDerived2 : public MainBase
{
public:
    virtual void main_derived2_func() const = 0;
};
 
class Derived1 : public MainDerived1
{
public:
    virtual void main_base_func() const
    {
        std::cout << "Derived1::main_base_func()" << std::endl;
    }
    
    virtual void main_derived1_func() const
    {
        std::cout << "Derived1::main_derived1_func()" << std::endl;
    }
};
 
class Derived2 : public MainDerived2
{
public:
    virtual void main_base_func() const
    {
        std::cout << "Derived2::main_base_func()" << std::endl;
    }
    
    virtual void main_derived2_func() const
    {
        std::cout << "Derived2::main_derived2_func()" << std::endl;
    }
};
 
void test(const MainBase& obj)
{
    obj.main_base_func();
    
    const MainDerived1 *temp1 = dynamic_cast<const MainDerived1 *>(&obj);
    const MainDerived2 *temp2 = dynamic_cast<const MainDerived2 *>(&obj);
    
    if (temp1 != 0)
        temp1->main_derived1_func();
    else if (temp2 != 0)
        temp2->main_derived2_func();
}
 
int main()
{
    Derived1 d1;
    Derived2 d2;
    
    test(d1);
    test(d2);
    
    return 0;
}
 
Текущее время: 04:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru