![](/img/trans.png)
[英]Overloading of operator<< requiring const input argument for compilation
[英]Operator overloading for << and >> does not work stream object in argument is const &
我很困惑 我正在創建一個集合類,當我用這個原型重載<<或>>運算符時:
ostream& operator<<(const ostream & out, Set & argSet)
{
//whatever my code does
return out;
}
這是行不通的。 但是,如果我刪除第一個參數中的“ const”關鍵字,它將起作用。 我很困惑為什么它不起作用。 任何幫助將不勝感激。
但是,如果我刪除第一個參數中的“ const”關鍵字,它將起作用。 我很困惑為什么它不起作用。
在兩種情況下( ostream&
和istream&
引用的重載operator<<()
和operator>>()
),流狀態通常都由內部執行的操作更改,因此不能將它們作為const
引用。
您不能這樣做的一個明顯原因是不能將隱式地從const
引用更改為非const
引用的必需返回類型。
該流不能為const
因為其內部狀態必須能夠在插入/提取或其他操作時更改。
例如,如果要達到EOF,它將如何設置相關位( eofbit
)?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.