Перегрузка методов в C++

C++Beginner
Практиковаться сейчас

Введение

В этом лабораторном занятии мы узнаем, как демонстрировать концепцию перегрузки методов в языке программирования C++. Перегрузка методов - это концепция, при которой в классе можно иметь несколько методов или функций с одинаковым именем, но с разными параметрами. Вызывается соответствующий метод в зависимости от количества и типов параметров, передаваемых во время вызова метода.

Создайте файл на C++

Сначала мы создаем новый файл на C++, названный main.cpp, в директории ~/project, используя следующую команду:

touch ~/project/main.cpp

Напишите код

Мы создадим класс под названием shape и опишем два метода под названием area(), но с разным количеством параметров. Метод input() будет запрашивать у пользователя ввод значений для переменных-членов l, b и s. Затем мы опишем метод main(), чтобы получить доступ к членам класса shape из вне класса.

#include <iostream>

using namespace std;

class shape {

    //объявление переменных-члена
    public:
        int l, b, s;

    //определение методов класса
    public:
        void input() {
            cout << "Введите длину каждой стороны квадрата: \n";
            cin >> s;
            cout << "\n";
            cout << "Введите длину и ширину прямоугольника: \n";
            cin >> l >> b;
            cout << "\n";
        }

    //демонстрация перегрузки методов
    public:
        void area(int side) {
            cout << "Площадь квадрата = " << side * side << endl;
        }

        void area(int length, int breadth) {
            cout << "Площадь прямоугольника = " << length * breadth << endl;
        }
};

int main() {
    cout << "\n\nДобро пожаловать в LabEx :-)\n\n\n";
    cout << " =====  Программа для демонстрации перегрузки методов в классе на CPP  ===== \n\n";

    //объявление объекта класса для доступа к членам класса из вне класса
    shape sh;

    cout << "\nВызов функции input() для ввода значений от пользователя\n";
    sh.input();

    cout << "\nВызов функции area(int) для вычисления площади квадрата\n";
    sh.area(sh.s);

    cout << "\nВызов функции area(int,int) для вычисления площади прямоугольника\n";
    sh.area(sh.l, sh.b);

    cout << "\nВыход из метода main()\n\n\n";

    return 0;
}

Компилируйте и запустите код

Теперь мы скомпилируем и запустим код с использованием следующей команды:

g++ main.cpp -o main && ./main

Понять вывод

Вывод программы будет следующим:

Welcome to LabEx :-)


 =====  Program to demonstrate Method Overloading in a Class, in CPP  =====

Calling the input() function to take the values from the user
Enter the length of each side of the Square:
4

Enter the length and breadth of the Rectangle:
5
6


Calling the area(int) function to calculate the area of the Square
Area of Square = 16

Calling the area(int,int) function to calculate the area of the Rectangle
Area of Rectangle = 30

Exiting the main() method

Здесь мы видим, что метод input() вызывается для приема ввода от пользователя. Затем метод area() с одним параметром вызывается для вычисления площади квадрата, а метод area() с двумя параметрами вызывается для вычисления площади прямоугольника.

Резюме

В этом практическом занятии мы узнали, как использовать концепцию перегрузки методов в языке программирования C++. Мы создали программу, которая определяет класс под названием shape с двумя методами под названием area(), но с разным количеством параметров, которые были перегружены. Пользователь вводит длину и ширину прямоугольника и длину стороны квадрата. Мы использовали перегруженные методы для вычисления площадей обоих фигур.