Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[c++] Przeciążanie operatorów

Ostatnio zmodyfikowano 2015-04-09 18:49
Autor Wiadomość
wojownik266
Temat założony przez niniejszego użytkownika
[c++] Przeciążanie operatorów
» 2015-04-09 18:18:35
Napisałem program który bardzo ładnie się kompiluje, bez błędów ale uruchomić się go już nie da. Czy ktoś mógłby wskazać przyczynę i miejsce błędu oraz jak rozwiązać ten problem? Podejrzana instrukcja to przeciążony operator +....
C/C++
#include <iostream>

class Book
{
private:
    int a;
    int b;
    int c;
public:
    Book();
    ~Book();
    Book operator +( Book & bo );
    void show();
   
};
Book::Book()
{
    a = 10;
    b = 20;
    c = a + b;
}
Book::~Book()
{
   
}
Book Book::operator +( Book & bo )
{
    Book bum = bo + bo;
    return bum;
}
void Book::show()
{
    std::cout << c << std::endl;
}

int main()
{
    Book bo, ok, bk;
    bk = bo + ok;
    bk.show();
   
    std::cin.get();
    std::cin.get();
    return 0;
}
P-130455
pekfos
» 2015-04-09 18:28:43
C/C++
Book Book::operator +( Book & bo )
{
    Book bum = bo + bo;
    return bum;
}
Nieskończona rekurencja.
P-130456
Monika90
» 2015-04-09 18:29:12
P-130457
wojownik266
Temat założony przez niniejszego użytkownika
» 2015-04-09 18:31:41
A jakby można to trochę inaczej napisać tak aby pozbyć się tej rekurencji?
P-130458
pekfos
» 2015-04-09 18:36:21
Zapewne możesz robić tam coś z sensem. Np dodać do siebie jakieś składowe Book.
P-130459
wojownik266
Temat założony przez niniejszego użytkownika
» 2015-04-09 18:42:57
Dziękuję za podpowiedzi. Teraz musi być już dobrze. No nie że tak jest?

C/C++
Book Book::operator +( Book & bo )
{
    Book bum;
    bum.c = bo.a + bo.b;
    return bum;
}
P-130460
pekfos
» 2015-04-09 18:47:35
Nie bardzo.. No chyba, że takie zachowanie dodawania jest zamierzone.
P-130461
wojownik266
Temat założony przez niniejszego użytkownika
» 2015-04-09 18:49:52
Taki miałem zamiar i teraz działa tak jak chciałem. Oczywiście jakiś inny dobry przykład mile widziany:)
P-130462
« 1 »
  Strona 1 z 1