我在_ Date類中創建了_year,_day,_date作爲私有整數。
錯誤:`_year'不是類型和類似的日期和星期一在寫()
錯誤:在'istr >>((const oop244 :: Date *)'運算符>>'模糊重載) - > oop244 ::日期:: _今年C++ istream >>和ostream << errors
note: candidates are: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>&(*)(std::basic_istream<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits]
std::ostream& Date::write(std::ostream& ostr) const
{
int year,mon,day;
return ostr<<year<< "/" <<mon<< "/" <<day;
this._year=year;
this._mon=mon;
this._day=day;
}
//overloading istream for object Date input
std::istream& Date::read(std::istream& istr)const
{
char c;
istr>>_year>>c>>_mon>>c>>_day;// char c for '/'
if(istr.fail())
_readErrorCode=1;
this->validate();
return istr;
}
//overloading << operator
std::ostream &operator<<(std::ostream& ostr,Date &d)
{
return d->write(ostr);
}
//overloading >> operator
std::istream& operator>>(Date &d,std::istream& istr)
{
return d->read(istr);
}
重載規則使這個模糊不清,這就是編譯器所抱怨的。您需要將構造函數標記爲顯式。 – 2015-04-03 06:41:07
yanivx請你解釋一下。 – 2015-04-03 07:09:05
夫婦的事情:1.你有一個錯位的'}'。除非Date類中有'operator' - ''重載,否則'd->'應該是'd''。也許發佈* real *代碼? – WhozCraig 2015-04-03 07:11:06