栗粒粒 发表于 2020-5-6 17:50:14

关于重写输入运算符的疑问

本帖最后由 栗粒粒 于 2020-5-6 17:51 编辑

在重写输入运算符时,如果用户需要输入一个虚数(3 + 8i),那么用户可能直接输入3 或者8i这样的实数或者纯虚数,(如果是纯虚数就把real设置为0,实数就把imaginary设置为0)这个时候要怎么判断呢
class Complex
{
public:
    friendostream & operator<<(ostream&os, const Complex &c);
    friendistream & operator>>(istream&is, Complex &c);
   
private:
    int real,imaginary;
    char a,b;
   
};
ostream &operator<<(ostream &os, const Complex &c)
{
    if(c.a == '+')
    os<<c.real<<" + "<<c.imaginary<<"i";
    else
    os<<c.real<<" - "<<c.imaginary<<"i";
    return os;
}
istream & operator>>(istream &is , Complex &c)
{
    is>>c.real;
    //不知道接下去怎么写
    return is;
}


#endif // COMPLEX_H_INCLUDED

xiaosi4081 发表于 2020-5-19 12:26:23

沙发
页: [1]
查看完整版本: 关于重写输入运算符的疑问