Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 09.10.2009
Сообщений: 17

Сгенерируйте абстрактный класс типа фигура, создайте производные от него классы типа трапеция, прямоугольник

26.10.2009, 23:12. Показов 4504. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сгенерируйте абстрактный класс типа фигура, создайте производные от него классы типа трапеция, прямоугольник. В классах должны быть реализованы следующие методы:
- конструкторы
- деструкторы,
- метод подсчета площади фигур – виртуальная функция.
Написать программу, которая демонстрирует работу этого класса.



Пример абстрактного класса задания:
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
#include <stdio.h>       // Для ввода-вывода
// Абстрактный базовый класс
class FIGURE
{
public:
    // Виртуальный метод без аргументов (подставляемый    метод)
    virtual double area( void )
    {
        return 0.0;
    }
    // Виртуальный метод с аргументом (подставляемый    метод)
    virtual float area1( float tmp = 9.0f )
    {
        return tmp;
    }
//Пример чистого    метода:
    virtual void prn1( void ) = 0;
    // Не виртуальная подставляемая функция
    void prn2( void )
    {
        printf( "\n The base class " );
        return;
    }
    // Виртуальный подставляемый метод вычисления и печати  значения площади фигуры
    virtual void prn3( void )
    {
        printf( "\n Square of a figure area = %g", area( ) );
        printf( "\n Square of a figure area1( 5.0f ) = %g",
                area1( 5.0f ) );
        return;
    }
};
// Класс CIRCLE, производный от абстрактного класса FIGURE
class CIRCLE : public FIGURE
{
    // Данные
private:
    double     radius;   // Радиус
    public:
        CIRCLE ( double rad )
    {
        radius = rad;
    }
    // Вычисление площади фигуры. При переопределении виртуального метода в производном классе служебное   слово virtual не обязательно. Подставляемый метод
    virtual double area( void )
    {
        return 3.14 * radius * radius;
    }
    // Вычисление площади фигуры. Подставляемый метод (не виртуальный - другая //сигнатура
    double area1( void )
    {
        return 3.14 * radius * radius;
    }
    // Переопределение абстрактного метода (фактически его   первое определение)
    virtual void prn1( void )
    {
        printf( "\n Example of operation of the virtual "
                "function " );
        return;
    }
    // Не виртуальная функция (см. базовый класс )
    void prn2( void )
    {
        printf( "\n The derivative class " );
        return;
    }
    // Виртуальный метод вычисления и печати значения площади    круга
    virtual void prn3( void )
    {
        printf( "\n Square of a circle area( ) = %g",
                area( ) );
        printf( "\n Square of a circle area1( ) = %g",
                area1( ) );
        return;
    }
};
int main( void )         // Возвращает 0 при успехе
{
    // Создать объект абстрактного класса нельзя, т.е. запись
    //   вида FIGURE figur; является ошибочной
    // Создаем объект производного класса
    CIRCLE     circl( 2.0 );
    // Вызываем все методы производного класса
    circl.prn2( ); circl.prn1( ); circl.prn3( );
        FIGURE     *pfigure = new CIRCLE( 1.0 );
    // Использование виртуального механизма – вызываются виртуальные методы //производного класса
    pfigure->prn1( ); pfigure->prn3( );
        // Вызов не виртуального метода (будет вызван метод    базового класса)
    pfigure->prn2( );
        pfigure->FIGURE :: prn3( );
        delete pfigure;
    printf( "\n" );
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.10.2009, 23:12
Ответы с готовыми решениями:

Создать базовый абстрактный класс Фигура и производные классы
Создать базовый абстрактный класс - фигура, и производные класс - круг, прямоугольник, трапеция. Определить абстрактные функции площадь,...

Базовый класс Фигура, производные классы Окружность, Прямоугольник, Ромб
Подскажите верно ли сделана эта программа #include &quot;stdafx.h&quot; #include &quot;iostream&quot; using namespace std; class Basic { ...

Создать иерархию классов Шахматная фигура – абстрактный класс, содержащий поле – цвет. Создать производные классы
Создать иерархию классов Шахматная фигура – абстрактный класс, содержащий поле – цвет. Создать производные классы все фигуры, содержащие...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.10.2009, 23:12
Помогаю со студенческими работами здесь

Создать класс 4-угольник, заданный координатами вершин. Определить производные классы трапеция и треугольник
Создать класс 4-угольник, заданный координатами вершин. Определить производные классы трапеция и треугольник.Предусмотреть виртуальную...

Создать класс 4-угольник, заданный координатами вершин. Определить производные классы трапеция и треугольник
Создать класс 4-угольник, заданный координатами вершин. Определить производные классы трапеция и треугольник.Предусмотреть виртуальную...

Создать абстрактный класс и производные классы
Помогите пожалуйста, очень надо... 1. Создать абстрактный класс Издание с методами позволяющим вывести на экран информацию об...

Определить класс «Шахматная фигура» и производные классы «Ферзь»
Дело в том, что начал изучать ООП не так давно и тут попалась задачка, которая заинтересовала. Условие таково: &quot;Определить класс...

Классы и наследование (Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию вычисления объёма.)
Уважаевые, помогите написать прожку на экзамене: Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru