См редактирования в концеПерегрузка операторов в C++
Я пытаюсь перегрузить оператор + в C++, чтобы позволить мне добавить два комплексных числа. (добавьте реальность и добавьте мнимую).
Вот моя перегруженная функция:
ComplexNum operator+(ComplexNum x, ComplexNum y){
ComplexNum result;
result.real = (x.getReal() + y.getReal());
result.imag = (x.getImag() + y.getImag());
return result;
}
Мой комплекс номер конструктор принимает два Интс и назначен первым Int реален и второй в целое Imag.
Когда я пытаюсь добавить:
ComplexNum num1 = ComplexNum(1,1);
ComplexNum num2 = ComplexNum(2,3);
ComplexNum num3;
num3 = num1 + num2;
printf("%d",num3.getReal());
я получаю 0 в результате. Результат должен быть 3 (действительные части num1 и num2 добавлены)
EDIT: Я понял, что случилось. У меня были .getReal() и .getImage(), возвращающиеся дважды.
Вы знаете шаблон 'std :: complex'? –
Я хочу узнать, как это сделать –
Вам нужно опубликовать код для всего вашего класса «ComplexNum». В частности, определение членов данных и вашего конструктора копирования и оператора присваивания копии (если определено пользователем). –