Перегрузка операторов ввода/вывода в C++

Опубликовано: 5 Января, 2023

Перегрузка операторов — это часть полиморфизма, которая включает функцию, благодаря которой мы можем напрямую использовать операторы с определенными пользователем классами и объектами.

Чтобы узнать больше об этом, обратитесь к статье о перегрузке операторов в C++.

Операторы ввода/вывода (>>/<<) Перегрузка в C++

Мы не можем напрямую использовать операторы ввода/вывода (>>/<<) для объектов. Простое объяснение этого состоит в том, что операторы ввода/вывода (>>/<<) предопределены для работы только со встроенными типами данных. Поскольку класс и объекты являются пользовательскими типами данных, компилятор выдает ошибку.

Пример:

int a;
cin>>a;
cout<<a<<endl;

здесь операторы ввода/вывода (>>/<<) могут использоваться непосредственно как встроенные типы данных.

Пример:

class C{

};

int main() 
{
    C c1;
    cin>>c1;
    cout<<c1;
    return 0;
}

c1 — переменные типа «класс C». Здесь компилятор выдаст ошибку, поскольку мы пытаемся использовать операторы ввода/вывода (>>/<<) для пользовательских типов данных.

Операторы ввода/вывода (>>/<<) используются для ввода и вывода переменной класса. Это можно сделать с помощью методов, но вместо этого мы выбираем перегрузку операторов. Причина этого в том, что перегрузка оператора дает функциональность для прямого использования оператора, что делает код простым для понимания, и из-за этого даже уменьшается размер кода. Кроме того, перегрузка оператора не влияет на нормальную работу оператора, но предоставляет ему дополнительную функциональность.

Простой пример приведен ниже:

Выход:

Enter a numerator and denominator of Fraction: 16 7
Fraction is: 16/7