Перегрузка + оператор приводит к коду выхода -1073741819 (0xC0000005) - PullRequest
1 голос
/ 30 января 2020

Я пытаюсь перегрузить оператор + в следующем простом коде. Однако каждый раз, когда я получаю ту же ошибку, что и Процесс завершается с кодом выхода -1073741819 (0xC0000005) , и код ничего не выводит. В чем именно заключается проблема, вызывающая ошибку памяти во время выполнения?

#include <iostream>
using namespace std;

class Complex{
private:
    int real;
    int imaginary;
public:
    Complex() : real(0), imaginary(0){}
    void getData(int real, int imaginary);
    Complex* operator +(Complex Obj);
    void showData();
    };

void Complex :: getData(int real, int imaginary){
this->real = real;
this->imaginary = imaginary;
}

Complex* Complex :: operator+(Complex Obj){
Complex* temp;
temp->real += real + Obj.real;
temp->imaginary += imaginary + Obj.imaginary;
return temp;
}

void Complex :: showData(){
cout << real << " + " << imaginary << "i";
}

int main(){

Complex Number1, Number2;
int real, imaginary;

cout << "Enter real and imaginary of first complex number" << endl;
cin >> real >> imaginary;
Number1.getData(real, imaginary);

cout << "Enter real and imaginary of second complex number" << endl;
cin >> real >> imaginary;
Number2.getData(real, imaginary);

Complex *Number3;
Number3 = Number1 + Number2;
Number3->showData();

return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...