如在,应该运营商>>匹配运营商< <?你应该为运算符<<格式化吗?
数据库的例子:
如果操作>>在以下格式的东西上写着:
2
Joe 500 20 1
Bob 250 30 0
若驾驶员< <输出?或者像这样:
Record: 1/2
Name: Joe
Balance: 500
Transactions: 20
Premium Account: Yes
然后有一个单独的writeFile()函数?
我知道要么会工作,但什么是“公认的标准”?
如在,应该运营商>>匹配运营商< <?你应该为运算符<<格式化吗?
数据库的例子:
如果操作>>在以下格式的东西上写着:
2
Joe 500 20 1
Bob 250 30 0
若驾驶员< <输出?或者像这样:
Record: 1/2
Name: Joe
Balance: 500
Transactions: 20
Premium Account: Yes
然后有一个单独的writeFile()函数?
我知道要么会工作,但什么是“公认的标准”?
如果你有一个istream operator>>
重载读取特定格式的数据的类型,那么如果你为同一类型实现一个重载的输入,它应该输出相同的格式(否则,它可能会变得相当混乱)。
这种操作符重载是IMO的一个很大的误用和误解。 使用重载,它真的有一定意义。
出于调试目的,请toString()
并覆盖< <来调用它。 请勿重写>>。
>>
和<<
通常用于发送序列化数据到流,而不是用于与用户通信。
我的2欧元。
两个或彼此独立,根据你的意愿,你可以超载他们。
我认为OP知道这一点。他在问这是否是个好主意。例如,您可以重载&&,但通常您应该避免这样做。 – 2010-06-21 02:36:47
@比利 你,你是正确的。但重写<<对于频繁检查(当你正在编码时)总是有好处的。 – prabhakaran 2010-06-21 04:22:24
我不同意:如果你打算从流中读取或写入数据,那么重载“流操作符”既简单又习惯。 – 2010-06-21 01:51:49
你是对的 - 当我写这篇文章时,我将这个添加到我的答案中:) – 2010-06-21 01:52:53