Перегрузка операции >>; Или как ввести значения в объект самописного класса с помощью cin>>

Здесь коротко показано, как перегрузить операцию >> для самописного класса.
Предположим, мы описываем класс Student. Вот так выглядит основная часть перегрузки для взаимодействия будущих объектов этого класса с cin:

Конечно, в показанном варианте ничего не происходит, но зато программа компилируется и запускается. Ваша задача понять показанный костяк. Если трудно, то можете посмотреть тему:

Там подробно описывается, что происходит и почему так.

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

В общем-то это всё. Вся перегрузка операции ввода значений в объект с помощью cin и применяемой к нему операции >>. Теперь можно работать с объектом нашего самодельного класса: вытаскивать из него нужные данные, манипулировать приобретёнными им значениями. Давайте допишем программу, чтобы она выводила что-то полезное на экран. Перегрузим операцию вывода.

Вот и всё. Вот так оно и делается.
Если в классе в качестве строковых элементов используются массивы или указатели на массивы и при этом надо, чтобы их значения сохраняли в себя пробелы, то в функции перегрузки ввода надо использовать stream.getline(строка, размер):


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Поиск

 
     

Случайная книга в электронном формате

https://www.litres.ru/mihail-flenov/programmirovanie-v-delphi-glazami-hakera-4575374/?lfrom=15589587
Яндекс.Метрика