istream & operator>>( istream & in, string & str )
{
char buf[ string::MAX_LENGTH + 1 ];
in >> buf;
if( !in.fail( ) )
str = buf; //如何理解char buf[]赋值给string对象,为什么可以这样赋值呢???
return in;
}
答案:
需要重载针对char []的赋值运算符。即
需要有这个string& operator= ( const char* s );
有它string& operator= ( const string& str )不够的。