Введение
В этом лабораторном занятии мы покажем, как создать программу на C++, которая демонстрирует концепцию иерархического наследования. Мы напишем простую программу с использованием классов и объектов, чтобы лучше понять тему.
В этом лабораторном занятии мы покажем, как создать программу на C++, которая демонстрирует концепцию иерархического наследования. Мы напишем простую программу с использованием классов и объектов, чтобы лучше понять тему.
Мы создадим новый файл с именем main.cpp в каталоге ~/project с использованием следующей команды:
touch ~/project/main.cpp
Первое, что нам нужно сделать, — это определить класс Shape, который будет служить родительским классом для классов Rectangle и Triangle. В этом классе мы создадим два защищенных член-данных width и height, которые будут хранить ширину и высоту фигуры.
Затем мы создадим публичную член-функцию setDimensions, которая будет настраивать эти размеры и выводить сообщение на консоль.
Вот код блока для класса Shape, который должен быть добавлен в main.cpp:
#include <iostream>
using namespace std;
class Shape {
//защищенные член-данные доступны только внутри класса и его дочерних классов
protected:
float width, height;
//публичные члены доступны везде
public:
void setDimensions(float w, float h) {
cout << "Setting the Dimensions using the parent Class: Shape\n";
cout << "The dimensions are: " << w << " and " << h << "\n\n";
width = w;
height = h;
}
};
Далее мы создадим класс Rectangle, который будет наследоваться от класса Shape. Здесь мы будем использовать технику переопределения методов для вычисления площади прямоугольника с использованием функции area().
Вот код блока для класса Rectangle, который должен быть добавлен в main.cpp:
class Rectangle: public Shape {
//Переопределение метода
public:
float area() {
return (width * height);
}
};
Теперь создадим класс Triangle, который также будет наследоваться от класса Shape. Здесь мы будем использовать переопределение методов для вычисления площади треугольника с использованием функции area().
Вот код блока для класса Triangle, который должен быть добавлен в main.cpp:
class Triangle: public Shape {
//Переопределение метода
public:
float area() {
return (width * height / 2);
}
};
Теперь настало время написать функцию main(). Здесь мы создадим объекты для классов Rectangle и Triangle и зададим их размеры.
Затем мы используем функцию area() для вычисления площади как для Rectangle, так и для Triangle с использованием соответствующих объектов.
Вот код блока для функции main(), который должен быть добавлен в main.cpp:
int main() {
cout << "\n\nWelcome to LabEx :-)\n\n\n";
cout << "===== Program to demonstrate the concept of Hierarchical Inheritance in CPP =====\n\n";
//Declaring the Class objects to access the class members
Rectangle rectangle;
Triangle triangle;
rectangle.setDimensions(5, 3);
triangle.setDimensions(2, 5);
cout << "\nArea of the Rectangle computed using Rectangle Class is : " << rectangle.area() << "\n\n\n";
cout << "Area of the Triangle computed using Triangle Class is: " << triangle.area();
cout << "\n\n\n";
return 0;
}
Для выполнения программы в терминале сначала перейдите в ~/project. Затем введите следующую команду для компиляции файла main.cpp:
g++ main.cpp -o main
После этого запустите программу с помощью следующей команды:
./main
На терминале вы должны увидеть вывод.
В этом практическом занятии мы узнали, как демонстрировать концепцию иерархического наследования в C++. Мы создали класс Shape, который был родительским классом как для Rectangle, так и для Triangle. Затем мы создали объекты для каждого из дочерних классов и использовали переопределение методов для нахождения площади прямоугольника и треугольника.
Надеемся, что это практическое занятие помогла вам лучше понять, как работает иерархическое наследование в C++. Если у вас есть какие-либо вопросы, не стесняйтесь обращаться к нам в комментариях ниже.