请教各位大侠关于重载basic_ofstream的<<操作符的问题
在VS2005下重载basic_ofstream的<<操作符时遇到一个问题。
struct Surface
{
Surface(const TCHAR* name) : m_Name(name)
{
}
double a;
double b;
double c;
double d;
const TCHAR* m_Name;
};
在对Surface重载basic_ofstream的<<操作符:
basic_ofstream<TCHAR>& operator << (basic_ofstream<TCHAR>& os, const Surface& s)
{
os<<s.m_Name<<endl;
os<<s.a<<" "<<s.b<<" "<<s.c<<" "<<s.d<<endl;
return os;
}
编译时总是提示os<<s.m_Name<<endl;这一句出错,原因为operator << : 4 overloads have similar conversions。
请各位高手帮忙看一下,到底错在哪里?