首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

error C2593: 'operator <<' is ambiguous解决思路

2012-02-28 
error C2593: operator is ambiguous#include iostreamusing namespace stdclass Test{public:Tes

error C2593: 'operator <<' is ambiguous
#include <iostream>  
using namespace std;  
  
class Test  
{  
  public:  
  Test(int age = 0,char *name = "\0")  
  {  
  Test::age = age;  
  strcpy(Test::name,name);  
  }  
  void outmembers(ostream &out)  
  {  
  out<<"Age:"<<age<<endl<<"Name:"<<this->name<<endl;  
  }  
  friend ostream& operator <<(ostream& ,Test&);  
  protected:  
  int age;  
  char name[50];  
};  
ostream& operator <<(ostream& out,Test &temp)  
{  
  temp.outmembers(out);  
  return out;  
}  
int main()  
{  
  Test a(24,"管宁");  
  cout<<a;  
  system("pause");
return 0;
}
会出现
 error C2593: 'operator <<' is ambiguous
Error executing cl.exe.

date22_1.obj - 1 error(s), 0 warning(s)
错误,是编译器的问题吗?

[解决办法]

C/C++ code
#include <iostream>   using std::ostream;  using std::cout;using std::endl; class Test{   public:     Test(int age = 0,char *name = "\0")     {     Test::age = age;     strcpy(Test::name,name);     }     void outmembers(ostream &out)     {     out<<"Age:"<<age<<endl<<"Name:"<<this->name<<endl;     }     friend ostream& operator <<(ostream& ,Test&);   protected:     int age;     char name[50];   };   ostream& operator <<(ostream& out,Test &temp)   {     temp.outmembers(out);     return out;}   int main()   {     Test a(24,"管宁");     cout<<a;    system("pause");  return 0;} 

热点排行