Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpOpOpIn 56 of 150 menu
◀ ▶

Ввод объекта в C++

Поток std::cin с >> забирает числа из ввода. Для своего типа ту же запись дает свободная функция operator>>: она получает поток и ссылку на объект, читает поля и возвращает поток для цепочки команд.

При закрытых полях функцию объявляют friend внутри класса. Запишем Vec:

#include <iostream> class Vec { public: friend std::istream& operator>>(std::istream& in, Vec& v); private: int x = 0; int y = 0; public: int getX() const { return x; } int getY() const { return y; } }; std::istream& operator>>(std::istream& in, Vec& v) { in >> v.x >> v.y; return in; }

Сейчас создадим объект и прочитаем координаты:

int main() { Vec point; std::cin >> point; std::cout << point.getX() << " " << point.getY() << "\n"; return 0; }

Сделайте класс Pair с закрытыми a и b. Добавьте дружественный operator>> и методы чтения. Считайте два числа в объект и выведите их через пробел.

Для Pair прочитайте из ввода 7 и 2 одной командой >> и напечатайте оба поля.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить