Сумма двух комплексных чисел с использованием перегрузки операторов - PullRequest
0 голосов
/ 11 сентября 2018

Я довольно новичок в концепции перегрузки операторов, я пытаюсь добавить два комплексных числа, используя концепцию перегрузки операторов и получаю сообщение об ошибке:

"нет соответствующей функции для вызова‘ Complex :: Complex () ’Complex obj;".

#include <iostream>
using namespace std;
class Complex
{
  int re_,im_;
  public:
  Complex(int re,int im):re_(re),im_(im) {};
  Complex operator+(const Complex &c)
  {
    Complex obj;
    obj.re_=re_+c.re_;
    obj.im_=im_+c.im_;
    return obj;
  }

};
int main()
{
  int re1,im1,re2,im2;
  cin>>re1>>im1>>re2>>im2;
  Complex c1(re1,im1);
  Complex c2(re2,im2);
  Complex c3;
  c3=c1+c2;
  return 0;
}

1 Ответ

0 голосов
/ 11 сентября 2018

У вас нет конструктора по умолчанию. Используйте свой собственный:

Complex operator+(const Complex &c)
{
    return Complex{re_+c.re_, im_+c.im_};
}

и

Complex c3 = c1 + c2;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...