• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przeciążenie operatora +

Object Storage Arubacloud
0 głosów
336 wizyt
pytanie zadane 2 czerwca 2017 w C i C++ przez Beorn Początkujący (250 p.)

    Entity& operator+(Entity &Postac_do_boosta, &power_up)
    {
        for (int i=Postac_do_boosta.LvL; i<power_up; i++)
        {
            Postac_do_boosta.LvL_Up(Postac_do_boosta);
        }
        return Postac_do_boosta;
    }

 

Chcę przeciążyć + w taki sposób żeby podnosiło poziom mojej postaci o wpisaną liczbę np.

obiekt+100

ale nie wiem co wpisać jako drugi argument w funkcji bo &power_up jest źle :/

jak deklaruje się zwykła liczbę? to w ogóle możliwe?

komentarz 2 czerwca 2017 przez Dexterim Dyskutant (8,370 p.)
Czym ma być power up?
komentarz 2 czerwca 2017 przez Beorn Początkujący (250 p.)
power up ma być liczbą lvl które chce dodać postaci

obiekt+100

zwiększam lvl postaci z 1(domyślnie) do 101

skorzystałem z przyjaźni i zadeklarowałem ją w Entity
komentarz 2 czerwca 2017 przez Dexterim Dyskutant (8,370 p.)

@tangarr odpowiedział na Twoje pytanie tylko ja bym nie korzystał z przyjaźni w tym wypadku

komentarz 2 czerwca 2017 przez Marcin_N_97 Stary wyjadacz (10,290 p.)
Ja tak tylko zwrócę malutką uwagę z tego co wiem to przeciążenie operatora nie służy to takie czegoś. Do takie czegoś powinieneś zrobić po prostu metodę klasy lub jak chcesz jużmieć bardzo zoorientowany obiektowo program to klasę, które leveluje Twoją postać. Ogólnikowo przeciążenia operatorów staramy się używać w ostateczności do problemów totalnie naturalnych dla poszczególnych operatorów, więc levelowanie postaci operatorem przeciążenia nie zalicza siędo nich. Operator dodawania sumuje dwa takie same obiekty (lub które można przekonwerterować) na siebie oraz zwraca r-value.
komentarz 2 czerwca 2017 przez Beorn Początkujący (250 p.)
Ja bym z tego normalnie nie korzystał bo to przekombinowane jest jak dla mnie ,ale w projekcie muszę zawrzeć przeciążenie kilku operatorów i nie mam pomysłu na jakieś fajne zastosowanie w moim kodzie.
komentarz 2 czerwca 2017 przez Marcin_N_97 Stary wyjadacz (10,290 p.)
To może mergowanie przedmiotów?

1 odpowiedź

0 głosów
odpowiedź 2 czerwca 2017 przez tangarr Mędrzec (154,860 p.)
wybrane 2 czerwca 2017 przez Beorn
 
Najlepsza

Po pierwsze: zaimplementuj operator += a nie +
 

Entity& operator+=(Entity &Postac_do_boosta, const int &power_up)
{
    for (int i=Postac_do_boosta.LvL; i<power_up; i++)
    {
        Postac_do_boosta.LvL_Up(Postac_do_boosta);
    }
    return Postac_do_boosta;
}

 

komentarz 2 czerwca 2017 przez Dexterim Dyskutant (8,370 p.)
W takim przypadku jak napisałeś trzeba by skorzystać z przyjaźni lepiej napisać to jako element klasy
komentarz 2 czerwca 2017 przez Beorn Początkujący (250 p.)
ale co to za różnica? przecież to bez znaczenia jaki operator dam sobie a chce żeby to był +
komentarz 2 czerwca 2017 przez Dexterim Dyskutant (8,370 p.)
No nie do końca tak bez znaczenia.

mając np. dwie zmienne a i b i pisząc a + b raczej nie chcesz modyfikować ich zawartości,a

co innego gdybys napisał a+=b

Podobne pytania

0 głosów
2 odpowiedzi 984 wizyt
pytanie zadane 6 stycznia 2017 w C i C++ przez Ala123456 Użytkownik (760 p.)
+1 głos
2 odpowiedzi 334 wizyt
pytanie zadane 14 czerwca 2021 w C# przez everstudybee Użytkownik (610 p.)

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...