0
在我InVal
類,我有一個方法和一個朋友操作如下聲明:參數無效
void Parse(std::istream& file) throw (int);
friend std::istream& operator >> (std::istream& is, const InVal& id3);
的朋友操作>>
代碼是這樣的:
std::istream& operator >> (std::istream& is, const InVal& val) {
val.Parse(is);
return is;
}
上線val.Parse(is)
我得到Invalid arguments
候選人報價是void Parse(std::basic_istream<char, std::char_traits<char>>&)
。在iosfwd
,我有
typedef basic_istream<char> istream
因此,某處某處不匹配。爲什麼我會收到錯誤,我該如何解決?
啊!我一直被這個咬傷。 –
也許最好讓'operator >>'non const的第二個參數?我假設在Parse方法中,你以某種方式加載InVal的內容。 –
@PavelDavydov是的,這正是我所做的。 'const'出現是因爲我從'<<'運算符複製粘貼,然後將'ostream'改爲'istream',但忘記從第二個參數中刪除'const'。 –