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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Lavin
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 16
#1

Привести пример, в котором реализуется динамический полиморфизм. - C++

17.06.2014, 19:24. Просмотров 912. Ответов 4
Метки нет (Все метки)

Привести пример, в котором реализуется динамический полиморфизм.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2014, 19:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Привести пример, в котором реализуется динамический полиморфизм. (C++):

Динамический полиморфизм - C++
Возможно вопрос глупый (во всём виноват Герберт Шилдт), но зачем собственно нужен динамический полиморфизм, если есть статический (имеется...

Полиморфизм. Пример. - C++
Прочитал уроки и написал прогу, которая описывает как я понимаю полиморфизм, скажите плизправильно я понимаю или нет: class ClassOne { ...

Динамический массив и полиморфизм - C++
Доброго времени суток. Замучил вопрос как вызвать полиморфизм из динамического массива объектов. SetConsoleCP(1251); ...

Динамический полиморфизм (разработка абстрактного класса) - C++
Дано задание:Согласно варианту задания, разработайте структуру абстрактного класса, который объявляет собой минимально необходимый...

Нужно привести пример программы тестирования - C++
Приведите пример очень (имхо) простой программы-теста :) Ну хоть на 1 вопрос, а то я хочу написать тест, нужен пример:) Допустим...

Привести пример обработки и преобразования матриц, используя динамическое выделение памяти - C++
Привести пример пример реализации алгоритма обработки и преобразования матриц, используя динамическое выделение памяти и технику работы с...

4
Croessmah
Эксперт CЭксперт С++
13416 / 7570 / 855
Регистрация: 27.09.2012
Сообщений: 18,632
Записей в блоге: 3
Завершенные тесты: 1
17.06.2014, 19:35 #2
C++
1
2
3
4
struct X
{
   virtual ~X() {};
} ;
0
0x10
2465 / 1637 / 241
Регистрация: 24.11.2012
Сообщений: 4,039
17.06.2014, 19:38 #3
Все темы одного и того же автора, а попыток заглянуть в учебник, судя по всему, и не было.
Пример кода класса
Пример класса с конструктором и деструктором, создание экземпляра класса через конструктор с параметрами
Пример класса со статическим членом
0
Хедин
17.06.2014, 20:19
  #4

Не по теме:

0x10, смотреть в учебник это для слабаков куда солиднее создавать темы на форуме

0
BlackSpace
137 / 130 / 52
Регистрация: 15.03.2014
Сообщений: 277
17.06.2014, 21:25 #5
Lavin, пример с полиморфизмом.
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <cmath>
#include <iostream>
 
using namespace std;
 
// базовый класс фигура
class Shape {
 
protected:
    double area;
 
public:
 
    // чистая виртуальная функция - вычисление площади
    virtual double GetArea() = 0;
 
    // виртуальный деструктор
    virtual ~Shape() {
        cout << "Shape destructor" << endl;
    }
};
 
// класс треугольник
class Triangle: public Shape {
 
private:
    // стороны треугольника
    double a;
    double b;
    double c;
 
    // метод вычисляет площадь треугольника
    void CalcArea(){
        double p = ( a + b + c ) / 2.0;
        area = sqrt( p * ( p - a ) * ( p - b ) * ( p - c ) );
    }
 
public:
    // конструктор с тремя параметрами - стороны треугольника
    // для упрощения нет проверки на возможность существования треугольника с такими сторонами
    Triangle( double _a, double _b, double _c ) :
            a( _a ), b( _b ), c( _c ) {
        CalcArea();
    }
 
    // метод возвращает площадь треугольника
    double GetArea() {
        return area;
    }
 
    // деструктор
    ~Triangle() {
        cout << "Triangle destructor" << endl;
    }
};
 
// класс круг
class Circle: public Shape {
 
private:
    double r;
 
    // метод вычисляет площадь круга
    void CalcArea(){
        area = M_PI * r * r;
    }
 
public:
    // конструктор с одним параметром - радиус окружности
    // опять же для упрощения - отсутсвует проверка возможности существования круга с указанным радиусом
    Circle( double _r ) :
            r( _r ) {
        CalcArea();
    }
 
    // площадь круга
    double GetArea() {
        return area;
    }
 
    // деструктор
    ~Circle() {
        cout << "Circle destructor" << endl;
    }
};
 
int main() {
 
    Shape* arr[ 3 ]; // массив указателей на объекты базового класса
 
    // но в данном массиве мы можем хранить объекты классов наследников
    // используем механизм позднего связывания
 
    arr[ 0 ] = new Triangle( 3, 4, 5 );
    cout << arr[ 0 ]->GetArea() << endl; // покажем площадь треугольника
 
    arr[ 1 ] = new Circle( 10.5 );
    cout << arr[ 1 ]->GetArea() << endl; // покажем площадь круга
 
    arr[ 2 ] = new Triangle( 3, 5, 7.5 );
    cout << arr[ 2 ]->GetArea() << endl; // покажем площадь треугольника
 
    for ( int i = 0; i < 3; ++i )
        delete arr[ i ]; // удаляем созданные объекты
 
    return 0;
}
Согласен с 0x10 - материал по учебникам изучать необходимо для решения возникающих задач.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2014, 21:25
Привет! Вот еще темы с ответами:

Не могу сделать полиморфизм. Не могу до конца понять пример по этому поводу - C++
Есть такая задача: Класс Animal должен быть абстрактным, имеет имя и вес. Класс Reptile имеет habitate, который держит в себе среду...

Написать реферат за пару часов на тему "Наследование, виртуальные функции и динамический полиморфизм" - C++
Здравствуйте форумчане,нужна помощь. Помогите написать реферат за пару часов на тему &quot;Наследование, виртуальные функции и динамический...

можете привести пример программы со структурой данных, и объяснить как она работает - C++
можете привести пример программы со структурой данных, и объяснить как она работает. Добавлено через 23 минуты или опишу часть...

Класс с полем - динамический массив: нужен наглядный пример - C++
Дайте пожалуйста пример класса с полем - динамический массив, и создание такого объекта с инициализацией массива.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
17.06.2014, 21:25
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru