Как перегрузить оператор >> на с++?

Пользователь

от jorge , в категории: JavaScript , год назад

Как перегрузить оператор >> на с++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от steve , год назад

@jorge 

Перегрузка оператора >> в C++ позволяет определить пользовательское поведение для чтения значений из входного потока.


Перегрузка оператора >> выполняется внутри класса, для которого определено чтение из потока. Она имеет следующий синтаксис:

1
2
3
4
5
6
istream& operator>>(istream& input, MyClass& obj) {
    // Чтение значений из потока в переменные объекта
    // или выполнение других операций, связанных с чтением

    return input;
}


Здесь istream& input - ссылка на входной поток, который будет использоваться для чтения значений, MyClass& obj - переменная объекта класса, в которую будут записываться значения из потока.


Таким образом, внутри функции перегрузки можно реализовать способ чтения значений из потока и их записи в переменные объекта. Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
istream& operator>>(istream& input, MyClass& obj) {
    int x, y;
    // Чтение двух значений из input
    input >> x >> y;

    // Присваивание значений переменным объекта
    obj.setX(x);
    obj.setY(y);

    return input;
}


После определения перегрузки оператора, его можно использовать в коде следующим образом:

1
2
MyClass obj;
cin >> obj; // Вызов перегруженного оператора >>


Таким образом, перегрузка оператора >> позволяет более гибко работать с чтением значений из входного потока и задавать пользовательское поведение для данной операции.