настоящее время у меня есть класс Complex:Передача различных параметров перегруженной функции оператора
class Complex{
public:
Complex();
Complex(double, double);
double r, i;
void read(istream &in);
void display(ostream &out) const;
double real, imaginary;
, что я использую, чтобы перегрузить оператор сложения. В настоящее время у меня есть три отдельные объявления функций для обработки 3 разных случаев: 2 комплексных числа, 1 комплексное число и 1 int справа, 1 int и 1 комплексное число справа.
Complex operator+ (const Complex& num1, const Complex& num2);
Complex operator+ (const int num1, const Complex& num2);
Complex operator+ (const Complex& num1,const int num2);
объявления функций все просто сложить «реальные» и «мнимых» части комплексных чисел и добавить целые числа в действительные части комплексных чисел.
Complex operator+ (const Complex& num1,const Complex& num2) {
Complex result;
result.real += num1.real + num2.real;
result.imaginary += num1.imaginary +num2.imaginary;
return result;
}
Complex operator+ (const int num1, const Complex& num2){
Complex result;
result.real += num1;
result.imaginary += num2.imaginary;
return result;
}
Complex operator+ (const Complex& num1, const int num2){
Complex result;
result.real += num2;
result.imaginary += num1.imaginary;
return result;
}
Должен быть лучший способ сделать это правильно? Или все три случая должны быть явно объявлены?
Что такое 'double r, i;' for? –