C++ (用友元函数重载运算符)
ami24 2009-05-18 10:28:51 我是想重载<<运算符,要求能直接输出如下格式:
3.15+2.78;
3.15-2.78;
3.15;
此三种情况,以下是我写的关于该重载<<运算符的代码,但是运行结果始终是:3.15-0i;
friend ostream & operator << (ostream &out,complex &obj)
{
out<<obj.real;
if(obj.image=0)
out<<"虚部值为0";
else if (obj.image>0)
{
out<<"+";
out<<obj.image;
out<<"i";
}
else
out<<"i";
}
return out;
}
但这只是做如下改动就可行了,为什么呢?我没有注意到什么知识点?请帮忙指点哈,谢谢
friend ostream & operator << (ostream &out,complex &obj)
{
out<<obj.real;
if(obj.image >0)
out<<"+";//<<obj.image <<"i";双重输出虚部了
if(obj.image !=0)
out<<obj.image <<"i";//除了正数要加上+号之外 其余的按照原样输出
return out;
}