Можно ли упростить перегрузку оператора (сложение / умножение) через C ++ - PullRequest
0 голосов
/ 08 февраля 2019

Я создаю класс для сложного сложения, но я обнаружил, что писать перегрузочную функцию было довольно утомительно.мой код (c ++ 11) выглядит следующим образом:

#include <iostream>
class complex{
public:
    complex(double real,double imag);
    complex();
    friend complex operator +(const double &m, const complex &origin);
    friend complex operator +(const complex &origin, const double &m);
    double real;
    double imag;
};
complex::complex(double real,double imag):real(real),imag(imag){;};
complex::complex():real(0),imag(0){;};
complex operator +(const double &m,const complex &origin){
    complex p;
    p.real=origin.real+m;
    p.imag=origin.imag;
    return p;
}
complex operator +(const complex &origin,const double &m){
    return m+origin;
}




int main() {
    complex com(1,2);
    com=3.+com;
    com=com+3.;
    return 0;
}

Могу ли я добавить сложное с одной операторной функцией, используя мой класс (во всяком случае, я не хочу использовать стандартную библиотеку)?спасибо.

...