请教关于重载>>运算符
头文件:#include <iostream.h>
class String;
istream& operator>>( istream&, String& );
class String{
...
cpp文件:
#include "(头文件名)"
#include <iomanip>
using namespace std;
inline istream& operator>>( istream &is, String &str )
{
const int limit = 4096
char inBuf[ limit + 1 ];
is >> setw( limit ) >> inBuf;
str = inBuf; //=号重载过了
return is;
}
在VC6上编译时提示:error C2872: 'istream' : ambiguous symbol;把#include <iomanip>
,using namespace std和setw( limit )去掉编译才能通过;但是连接就出错了,如果把CPP文件中的内容全部放到头文件里面才能运行起来.
哪位大哥帮忙解释一下.多谢!