C++ 运算符重载中的回答不正确

C++ 运算符重载中的回答不正确,c++,C++,我刚刚学习了运算符重载,我想尝试创建一个表示复数的对象。我写了以下内容: #include <iostream> using namespace std; class complexNumber { public: double re, im; complexNumber(){} complexNumber(double a, double b) { re = a;

我刚刚学习了运算符重载,我想尝试创建一个表示复数的对象。我写了以下内容:

#include <iostream>

using namespace std;

class complexNumber
{
    public:
        double re, im;
        complexNumber(){}
        complexNumber(double a, double b)
        {
            re = a;
            im = b;
        }
        complexNumber operator+ (complexNumber b)
        {
            complexNumber c;
            c.re = re + b.re;
            c.im = im + b.im;
        }
        complexNumber operator- (complexNumber b)
        {
            complexNumber c;
            c.re = re - b.re;
            c.im = im - b.im;
        }
};

int main()
{
    complexNumber a(1,2);
    complexNumber b(4,6);
    complexNumber c;
    complexNumber d;

    c = a + b;
    d = a - b;

    cout << c.re << " + " << c.im << "i" << endl;
    cout << d.re << " + " << d.im << "i" << endl;
}
#包括
使用名称空间std;
类复合数
{
公众:
双re,im;
complexNumber(){}
复合编号(双a,双b)
{
re=a;
im=b;
}
complexNumber运算符+(complexNumber b)
{
络合数c;
c、 re=re+b.re;
c、 im=im+b.im;
}
complexNumber运算符-(complexNumber b)
{
络合数c;
c、 re=re-b.re;
c、 im=im-b.im;
}
};
int main()
{
配合物编号a(1,2);
配合物编号b(4,6);
络合数c;
复合数d;
c=a+b;
d=a-b;

你需要从函数中返回一个值。你的编译器没有警告你吗?

你需要从函数中返回一个值。你的编译器没有警告你吗?

+1让编译器编写者高兴:注意他们的警告!他们花时间把它们放在编译器中!+1让编译器编写者高兴:注意他们的警告gs!他们花了很多时间把它们放到编译器中!juanchopanza现在删除的答案已经说过了,但我认为值得重复:默认(无参数)构造函数很糟糕,因为它使成员无法初始化。至少通过
complexNumber():re(),im(){}初始化它们
。juanchopanza现在删除的答案已经说过这一点,但我认为值得重复:默认(无参数)构造函数很糟糕,因为它使成员无法初始化。至少通过
complexNumber():re(),im(){}
初始化它们。