Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2022, 22:41   #1
Lovskiy
Пользователь
 
Регистрация: 16.10.2021
Сообщений: 27
По умолчанию Объясните этот код

Условие: составить программу, в которой определяются классы с наследованием, а также виртуальные функции, с помощью которых выполняются заданные операции над объектами базового и производного классов.
Разместить объявления классов в заглавном файле, определение функций-членов – в файле реализации, а функцию main – в управляющем файле.(смотреть вложение)


Объясните, пожалуйста этот код по строчках

Код:
#pragma once
#include <iostream>
#include <math.h>
using namespace std;

// Class rectangle the parrent
class rectangle
{
public:
    double a, b;

    rectangle(double a1, double b1)
    {
        a = a1;
        b = b1;
    }

    virtual double area()
    {
        return a * b;
    }

    virtual double diagonal()
    {
        return sqrt(a * a + b * b);
    }

    virtual void show_info()
    {
        cout.precision(3);
        cout << "\nInfo about rectangle: "
             << "\nSide 1: " << a << "\nSide 2: " << b
             << "\nArea: " << area()
             << "\nDiagonals: " << diagonal();
    }
};

// Class Paralelogram child of rectangle
class paralelog : public rectangle
{
public:
    int deg;
    paralelog(double a1, double b1, int deg1) : rectangle(a1, b1)
    {
        deg = deg1;
    }

    double area() override
    {
        return abs(a * b * sin(deg));
    }

    double diagonal() override
    {
        return sqrt(a * a + b * b - 2 * a * b * cos(deg));
    }

    void show_info() override
    {
        cout.precision(3);
        cout << "\n\nInfo about paralelog: "
             << "\nSide 1: " << a << "\nSide 2: " << b << "\nDeg: " << deg
             << "\nArea: " << area() << "\nDiagonals: " << diagonal();
    }
};
//Main file
#include <iostream>
#include "RectParal.h"
using namespace std;

int main()
{
    system("cls");
    rectangle *ptr, rect(2.5, 12.4);
    paralelog paral(10, 4, 60);

    ptr = &rect;
    ptr->show_info();

    ptr=&paral;
    ptr->show_info();
}
Изображения
Тип файла: png Безымянный1.png (6.6 Кб, 13 просмотров)
Lovskiy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объясните этот код Lovskiy Помощь студентам 2 02.10.2022 19:11
Объясните, что делает этот код на Pascal igormel Помощь студентам 1 29.12.2016 21:28
Объясните, что делает этот код и напишите, пожалуйста, несколько комментариев narekkg Помощь студентам 0 12.06.2015 18:07
О чём этот раздел Zerotonibuff Компьютерное железо 5 24.12.2013 06:50