error C2679: binary '>>': no operator found which takes a right-hand operand of type 'const char [2]'
程式碼中 in >> z.hour >> ":" >> z.minute >> ":" >> z.second; 試圖直接從串流提取字面常數 ":" (型別 const char[2]),但 operator>> 無此多載。提取運算子只能讀取**變數**,不能匹配固定字元。
char colon; in >> z.hour >> colon >> z.minute >> colon >> z.second;colon == ':',否則設定 in.setstate(std::ios::failbit)。istream& operator>>(istream& in, Time& z) {
char c;
if (in >> z.hour >> c >> z.minute >> c >> z.second) {
if (c != ':') in.setstate(ios::failbit);
}
if (!in) z = Time();
return in;
}
原碼 out < return out; 殘缺,正確應為:
ostream& operator<<(ostream& out, const Time& z) {
return out << z.hour << ':' << z.minute << ':' << z.second;
}