Загрузка данных


using System;

class Brick
{
    public double width;  // ширина
    public double height; // высота
    public double length; // длина

    // Конструктор: позволяет создавать кирпич сразу с размерами
    public Brick(double w, double h, double l)
    {
        width = w;
        height = h;
        length = l;
    }

    // Функция, которая считает объем (ширина * высота * длина)
    public double GetVolume()
    {
        return width * height * length;
    }

    // --- ПЕРЕГРУЗКА ОПЕРАТОРОВ ---

    // 1. Перегрузка плюса: складываем объемы двух кирпичей
    public static double operator +(Brick b1, Brick b2)
    {
        return b1.GetVolume() + b2.GetVolume();
    }

    // 2. Перегрузка минуса: вычитаем объем второго из первого
    public static double operator -(Brick b1, Brick b2)
    {
        return b1.GetVolume() - b2.GetVolume();
    }

    // 3. В C# нельзя перегрузить одиночное "=". Перегружаем "==" (равенство).
    // По правилам языка C#, если мы делаем "==", нужно обязательно сделать и "!=" (не равно).
    public static bool operator ==(Brick b1, Brick b2)
    {
        return b1.GetVolume() == b2.GetVolume();
    }

    public static bool operator !=(Brick b1, Brick b2)
    {
        return b1.GetVolume() != b2.GetVolume();
    }
}

class Program
{
    static void Main()
    {
        // Создаем первый кирпич (размеры 2, 3, 4 -> объем 24)
        Brick brick1 = new Brick(2, 3, 4); 
        
        // Создаем второй кирпич (размеры 1, 2, 5 -> объем 10)
        Brick brick2 = new Brick(1, 2, 5); 

        // Проверяем, как работают наши новые математические знаки
        Console.WriteLine("Сумма объемов (+): " + (brick1 + brick2)); // Должно быть 34
        Console.WriteLine("Разница объемов (-): " + (brick1 - brick2)); // Должно быть 14

        // Проверяем оператор ==
        if (brick1 == brick2)
        {
            Console.WriteLine("Кирпичи одинаковые по объему!");
        }
        else
        {
            Console.WriteLine("Кирпичи разные по объему!"); // Сработает эта строчка
        }

        Console.ReadLine();
    }
}