Действительно ли необходимо ли отформатировать оператор <<для классов?

Как в, должен оператор>> соответствовать оператору <<?

Пример базы данных:

Если оператор>> читает в чем-то вроде следующего формата:

2
Joe 500 20 1
Bob 250 30 0

должен оператор <<вывод это? Или что-то вроде этого:

Record: 1/2
Name: Joe
Balance: 500
Transactions: 20
Premium Account: Yes

И затем имеет отдельный writeFile () функцию?

Я знаю, что любой работал бы, но каков "принятый стандарт"?

6
задан cactusbin 21 June 2010 в 01:42
поделиться

3 ответа

Если у вас есть перегрузка istream operator >> для типа, который читает данные в определенном формате, то, если вы реализуете ostream operator << для того же типа, она должна выводиться в том же формате (иначе это может сильно запутать).

7
ответ дан 10 December 2019 в 00:32
поделиться

Такой вид перегрузки оператора является, по ИМО, большим неправильным использованием и заблуждением. Используйте перегрузку там, где это действительно имеет смысл.

Для целей отладки используйте toString () и переопределите << для его вызова. Не отменять >> вообще.

>> и << обычно служат для отправки сериализованных данных в потоки, а не для связи с пользователем.

Мои 2 евроцента.

3
ответ дан 10 December 2019 в 00:32
поделиться

Оба или независимо друг от друга, по вашему желанию вы можете перегрузить их.

0
ответ дан 10 December 2019 в 00:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: