如在,應該運營商>>匹配運營商< <?你應該爲運算符<<格式化嗎?
數據庫的例子:
如果操作>>在以下格式的東西上寫着:
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