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

Przeciążenie operatora +

VPS Starter Arubacloud
0 głosów
372 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 (155,140 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 1,045 wizyt
pytanie zadane 6 stycznia 2017 w C i C++ przez Ala123456 Użytkownik (760 p.)
+1 głos
2 odpowiedzi 368 wizyt
pytanie zadane 14 czerwca 2021 w C# przez everstudybee Użytkownik (670 p.)

93,020 zapytań

141,982 odpowiedzi

321,283 komentarzy

62,366 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...