用友元函数重载加号,进行复数和实数的加法时加号两端的操作数怎么还是不能互换?以下面程序为例:

1个回答

  • 大哥...

    你只定义了double + complex的,没定义complex+double的啊

    c0=c1+d1,电脑想第一个应该是double的,咦味道不对,怎么是Complex的,报错

    再加一个友元函数

    类里面声明

    friend Complex operator +(const Complex &c,double d);

    类外定义

    Complex operator +(const Complex &c,double d)

    {

    return Complex(d+c.dReal,c.dImag);

    }

    void Complex::print()const

    {

    cout