为什么我不能在类中声明operator +?

时间:2017-12-09 12:36:39

标签: c++

我在代码中的观点是我想重载+运算符,所以我可以添加两个类实例。例如,考虑一个具有2个双成员的类,Real和Complex。 类称为Complex,我创建了2个实例,c1和c2。 然后我想创建一个c3实例,它增加了c1和c2的值。 我有一个复制构造函数和+运算符overloader。 (复制,所以我可以将+ overloader创建的新实例分配给c3): 这是我的班级:

class Complex {
    double real;
    double imaginary;
public:
    Complex();
    Complex(double real, double imaginary);
    ~Complex();
    Complex(const Complex &other);
    Complex operator+(const Complex &other, const Complex &other2);
};

CPP档案:

Complex Complex::operator+(const Complex &other1, const Complex &other2){
    return(Complex(other1.real+other2.real, other1.imaginary+other2.imaginary));
}

Complex::Complex(){};

Complex::Complex(double real, double imaginary): real(real), imaginary(imaginary){};

Complex::~Complex(){};

Complex::Complex(const Complex &other){
    this->real = other.real;
    this->imaginary = other.imaginary;
}

我知道我可以创建一个朋友操作符,但我希望将所有内容保存在一个类中。没理由,只是我喜欢这样。

0 个答案:

没有答案