Введение
В этом лабораторном задании вы научитесь демонстрировать концепцию одиночного наследования в языке программирования C++. Вы создадите два класса: родительский класс и дочерний класс, при этом дочерний класс (производный класс) наследует характеристики (свойства и методы) родительского класса (базового или суперкласса).
Создайте файл main.cpp
Сначала создайте файл main.cpp в директории ~/project с использованием следующей команды:
touch ~/project/main.cpp
Напишите код
Скопируйте и вставьте следующий код в файл main.cpp:
#include <iostream>
// Подключаем необходимые библиотеки
using namespace std;
// Объявляем родительский класс (базовый класс) под названием "Shape"
class Shape {
public:
float area(float l, float b) { // Метод для вычисления площади фигуры
return (l * b);
}
float perimeter(float l, float b) { // Метод для вычисления периметра фигуры
return (2 * (l + b));
}
};
// Объявляем дочерний класс (производный класс) под названием "Rectangle", который наследует класс Shape
class Rectangle: private Shape {
private:
float length,
breadth;
public:
Rectangle(): length(0.0), breadth(0.0) {} // Конструктор по умолчанию класса Rectangle
void getDimensions() { // Метод для получения размеров прямоугольника от пользователя
cout << "\nВведите длину прямоугольника: ";
cin >> length;
cout << "\nВведите ширину прямоугольника: ";
cin >> breadth;
}
// Метод для вычисления периметра прямоугольника с использованием класса Shape
float perimeter() {
// Вызывает метод perimeter() класса Shape и возвращает результат.
return Shape::perimeter(length, breadth);
}
// Метод для вычисления площади прямоугольника с использованием класса Shape
float area() {
// Вызывает метод area() класса Shape и возвращает результат.
return Shape::area(length, breadth);
}
};
int main() {
// Создаем объект класса Rectangle
Rectangle rect;
// Приветственное сообщение
cout << "\n\nДобро пожаловать в программу по одиночному наследованию!\n";
// Сообщение для пользователя
cout << "\nКласс Rectangle наследуется от класса Shape.\n\n";
// Получаем размеры прямоугольника от пользователя
rect.getDimensions();
// Вычисляем периметр прямоугольника с использованием родительского класса Shape и выводим результат
cout << "\nПериметр прямоугольника, вычисленный с использованием родительского класса Shape: " << rect.perimeter() << "\n";
// Вычисляем площадь прямоугольника с использованием родительского класса Shape и выводим результат
cout << "Площадь прямоугольника, вычисленная с использованием родительского класса Shape: " << rect.area() << "\n\n";
return 0;
}
Компилируйте и запускайте код
Далее скомпилируйте код с использованием следующей команды:
g++ main.cpp -o main &&./main
Затем запустите код с использованием следующей команды:
./main
Понятите вывод
После запуска программы вы увидите следующий результат:
Welcome to Single Level Inheritance Program!
Rectangle class is derived from the Shape class.
Enter the length of the Rectangle: 5
Enter the breadth of the Rectangle: 10
Perimeter of the Rectangle computed using the parent Class Shape: 30
Area of the Rectangle computed using the parent Class Shape: 50
Программа запрашивает у пользователя длину и ширину прямоугольника. После получения размеров она вычисляет периметр и площадь с использованием функций perimeter() и area() из родительского класса Shape.
Резюме
Поздравляем! Вы успешно написали программу на C++, демонстрирующую концепцию одиночного наследования. Вы можете экспериментировать с разными фигурами, и вывод будет точно отражать вычисления для любых новых производных классов.



