Введение
В этом лабораторном задании вы научитесь демонстрировать концепцию перегрузки оператора + в языке программирования C++. Перегрузка операторов - это особенность языка C++, которая позволяет одному и тому же оператору или символу использоваться с разными значениями в зависимости от контекста его использования. В этом лабораторном задании мы покажем, как сложить два объекта Cuboid с использованием оператора +.
Создайте новый файл на C++
Создайте новый файл на C++, названный main.cpp, в директории ~/project.
cd ~/project
touch main.cpp
Напишите код для демонстрации перегрузки оператора +
Добавьте следующий код в main.cpp, чтобы создать класс Cuboid, представляющий трехмерный прямоугольный параллелепипед:
#include <iostream>
using namespace std;
// определение класса Cuboid для демонстрации концепции перегрузки оператора Plus в CPP
class Cuboid {
// объявление переменных-членов класса как public, чтобы получить доступ к ним извне класса
public:
double length; // Длина кубоида
double breadth; // Ширина кубоида
double height; // Высота кубоида
public:
double getVolume(void) {
return length * breadth * height;
}
void setLength(double l) {
length = l;
}
void setBreadth(double b) {
breadth = b;
}
void setHeight(double h) {
height = h;
}
// Перегрузка оператора + для сложения двух объектов Cuboid друг с другом.
Cuboid operator + (const Cuboid & c) {
Cuboid cuboid;
cuboid.length = this -> length + c.length;
cuboid.breadth = this -> breadth + c.breadth;
cuboid.height = this -> height + c.height;
return cuboid;
}
};
Определите главную функцию
Добавьте следующий код в main.cpp, чтобы реализовать функцию main, которая создает три объекта Cuboid, задает их размеры, вычисляет их объемы, складывает два из объектов и выводит размеры и объем результирующего объекта кубоида:
// Определение главного метода для доступа к членам класса
int main() {
cout << "\n\nДобро пожаловать в LabEx :-)\n\n\n";
cout << " ===== Программа для демонстрации перегрузки оператора Plus в CPP ===== \n\n";
// Объявление объектов класса для доступа к членам класса
Cuboid c1;
Cuboid c2;
Cuboid c3;
// Для хранения объема кубоида
double volume = 0.0;
// Установка длины, ширины и высоты для первого объекта кубоида: c1
c1.setLength(3.0);
c1.setBreadth(4.0);
c1.setHeight(5.0);
// Установка длины, ширины и высоты для второго объекта кубоида: c2
c2.setLength(2.0);
c2.setBreadth(5.0);
c2.setHeight(8.0);
// Поиск объема первого кубоида: c1
cout << "Вызов метода getVolume() для нахождения объема кубоида c1\n";
volume = c1.getVolume();
cout << "Объем кубоида c1 равен : " << volume << "\n\n\n";
// Поиск объема первого кубоида: c1
cout << "Вызов метода getVolume() для нахождения объема кубоида c2\n";
volume = c2.getVolume();
cout << "Объем кубоида c2 равен : " << volume << "\n\n\n";
// Сложение двух объектов кубоида c1 и c2 для формирования третьего объекта c3:
c3 = c1 + c2;
// Вывод размеров третьего кубоида: c3
cout << "Длина кубоида c3 равна : " << c3.length << endl;
cout << "Ширина кубоида c3 равна : " << c3.breadth << endl;
cout << "Высота кубоида c3 равна : " << c3.height << endl;
// Поиск объема третьего кубоида: c3
cout << "\n\nВызов метода getVolume() для нахождения объема кубоида c3\n";
volume = c3.getVolume();
cout << "Объем кубоида c3 равен : " << volume << endl;
cout << "\n\n\n";
return 0;
}
Компилируйте и запустите код
Используйте следующую команду для компиляции и запуска кода:
g++ main.cpp -o main && ./main
Вы увидите следующий вывод:
Добро пожаловать в LabEx :-)
===== Программа для демонстрации перегрузки оператора Plus в CPP =====
Вызов метода getVolume() для нахождения объема кубоида c1
Объем кубоида c1 равен : 60
Вызов метода getVolume() для нахождения объема кубоида c2
Объем кубоида c2 равен : 80
Длина кубоида c3 равна : 5
Ширина кубоида c3 равна : 9
Высота кубоида c3 равна : 13
Вызов метода getVolume() для нахождения объема кубоида c3
Объем кубоида c3 равен : 585
Резюме
В этом практическом занятии вы узнали, как продемонстрировать концепцию перегрузки оператора + в языке программирования C++. Перегрузка операторов - это мощный и полезный функционал C++, позволяющий использовать оператор с разными значениями в различных контекстах. Перегружая оператор +, вы можете складывать два объекта Cuboid друг с другом.



