Kalkulator obiektowo

0

Robię kalkulator liczb zespolonych, mam problem z wyświetlaniem wyniku dodawania. l4.ur nie równa się u mnie 3 tylko wyskakuje taki ciąg liczb 1956473786. Powinienem jakoś inaczej przekazać te obiekty w funkcji? (Nie wkleiłem całego kodu tylko część)

int main()
{
    Zespol l1(1,2);
    Zespol l2(2,4);
    Zespol l4;
    l4.dodaj(l1,l2);
    cout<<l4.ur<<" "<<l4.ur;
    return 0;
}

void dodaj(Zespol x1, Zespol x2);
void Zespol::dodaj(Zespol z1, Zespol z2)
{
    Zespol l3;
    l3.rz = z1.rz + z2.rz;
    l3.ur = z1.ur + z2.ur;
}
0

Błąd masz w kodzie, którego nie widać.
Zresztą tu masz gotowca: https://en.cppreference.com/w/cpp/numeric/complex

0

Tutaj reszta kodu, muszę ten program zrobić sam, bez korzystania z gotowców

class Zespol
{
public:
    int rz;
    int ur;
    Zespol();
    Zespol(int x, int y);
    void dodaj(Zespol x1, Zespol x2);
};


Zespol::Zespol(int x, int y)
{
    rz=x;
    ur=y;
}
Zespol::Zespol()
{

}
void Zespol::dodaj(Zespol z1, Zespol z2)
{
    Zespol l3;
    l3.rz = z1.rz + z2.rz;
    l3.ur = z1.ur + z2.ur;
}

0

Po co ci to l3 w Zespol::dodaj? Wywal to, bo to jest źródłem problemu.

0
MarekR22 napisał(a):

Po co ci to l3 w Zespol::dodaj? Wywal to, bo to jest źródłem problemu.

Ale muszę chyba zapisać do jakiejś zmiennej wynik dodawania?

0

Ale to co teraz robisz to zapisywanie do zmiennej lokalnej. Zasięg tej zmiennej ogranicza się do funkcji dodaj. Po powrocie z funkcji nie masz już do niej dostępu :)

0

Nie wiem czy tak się dodaje liczby zespolone no ale masz:

#ifndef ZESPOL_H
#define ZESPOL_H

class Zespol
{
public:
    int rz;
    int ur;
    Zespol();
    Zespol(int x, int y);
    void dodaj(Zespol x1, Zespol x2);
};


Zespol::Zespol(int x, int y)
{
    rz=x;
    ur=y;
}
Zespol::Zespol()
{

}
void Zespol::dodaj(Zespol z1, Zespol z2)
{
    rz = z1.rz + z2.rz;
    ur = z1.ur + z2.ur;
}

#endif

1 użytkowników online, w tym zalogowanych: 0, gości: 1