Страницы

Поиск по вопросам

понедельник, 10 июня 2019 г.

Перегрузка операции “>>” в с++

Как можно реализовать перегрузку операции >> так, чтоб выражение a>>b>>c (abc - объекты одного класса) работало следующим образом:
В объект c заносится значение объекта b, а в объект b - значение объекта a


Ответ

Операция при перегрузке должна возвращать старое значение правого операнда. Тогда результатом
a >> b
будет занесение в b значения a, а результат - старое значение b - будет занесено в c
Что-то вроде
#include
using namespace std;
class I { int i; public: I(int i = 0):i(i){} operator int() const { return i; } };
I operator >> (const I& a, I& b) { I c = b; b = a; return c; }
int main(int argc, const char * argv[]) { I a(3), b(4), c(5); a >> b >> c; cout << a << " " << b << " " << c << endl; }

Комментариев нет:

Отправить комментарий