Как в, должен оператор>> соответствовать оператору <<?
Пример базы данных:
Если оператор>> читает в чем-то вроде следующего формата:
2
Joe 500 20 1
Bob 250 30 0
должен оператор <<вывод это? Или что-то вроде этого:
Record: 1/2
Name: Joe
Balance: 500
Transactions: 20
Premium Account: Yes
И затем имеет отдельный writeFile () функцию?
Я знаю, что любой работал бы, но каков "принятый стандарт"?
Если у вас есть перегрузка istream operator >>
для типа, который читает данные в определенном формате, то, если вы реализуете ostream operator <<
для того же типа, она должна выводиться в том же формате (иначе это может сильно запутать).
Такой вид перегрузки оператора является, по ИМО, большим неправильным использованием и заблуждением. Используйте перегрузку там, где это действительно имеет смысл.
Для целей отладки используйте toString ()
и переопределите << для его вызова.
Не отменять >> вообще.
>>
и <<
обычно служат для отправки сериализованных данных в потоки, а не для связи с пользователем.
Мои 2 евроцента.
Оба или независимо друг от друга, по вашему желанию вы можете перегрузить их.