Я создаю класс для сложного сложения, но я обнаружил, что писать перегрузочную функцию было довольно утомительно.мой код (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;
}
Могу ли я добавить сложное с одной операторной функцией, используя мой класс (во всяком случае, я не хочу использовать стандартную библиотеку)?спасибо.