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

Mały problem z szablonem funkcji

Object Storage Arubacloud
0 głosów
153 wizyt
pytanie zadane 8 listopada 2016 w C i C++ przez programista15k Początkujący (370 p.)

Witam, mam mały problem z zadeklarowaniem szablonu funkcji jako friend w klasie Samolot

template <class Typ>
Typ zwieksz_cene (Typ a)
{
    a.cena += 100;
}

// klasa SAMOLOT

class Samolot : public Pojazd
{
    public:
        Samochod();
        virtual ~Samochod();
       // tutaj chcialbym dopisac deklaracje friend funkcji zwieksz_cene jednak przez to ze jest ona template to nie potrafie tego poprawnie zapisac 
 
    protected:
        int cena;
};


// 
Samolot _samolot;
umyj<Samolot>(_samolot);

 

 

Proszę o pomoc, rozwiązanie jest pewnie banalne..

1 odpowiedź

+1 głos
odpowiedź 8 listopada 2016 przez criss Mędrzec (172,590 p.)
wybrane 14 listopada 2016 przez programista15k
 
Najlepsza

Po pierwsze: twoja funkcja powinna przyjmować przez referencje, żeby byl widoczny jakikolwiek efekt jej działania. 
Po drugie: zadeklarowałeś typ zwracany, ale brak instrukcji return. 

Także sama funkcja (a raczej szablon) powinna wyglądać tak:

template <class Typ>
Typ zwieksz_cene (Typ & a)
{
    a.cena += 100;
    return a;
}

Teraz ofc zwraca kopie zmodyfikowanego obiektu. Ale modyfikuje oryginał przekazany do funkcji.

Co do deklaracji friend:

friend Samolot zwieksz_cene<Samolot>(Samolot&);
komentarz 8 listopada 2016 przez criss Mędrzec (172,590 p.)
I jeszcze jedno. Te samochody w samolocie to nie zamierzone mam nadzieje? :D
komentarz 12 listopada 2016 przez programista15k Początkujący (370 p.)
oczywiście to było nie zamierzone, wkradł mi się mały błąd ale już na etapie przepisywania kodu na forum.

Dzięki wielkie za pomoc ;-), po 3 dniach poznawania nowych rzeczy ten problem wydaje się już dla mnie bardzo prosty.

Podobne pytania

0 głosów
1 odpowiedź 152 wizyt
pytanie zadane 7 lutego 2021 w PHP przez CSSoup Mądrala (6,460 p.)
0 głosów
1 odpowiedź 143 wizyt
pytanie zadane 3 września 2019 w C i C++ przez enigmatycznyclay Bywalec (2,450 p.)
0 głosów
1 odpowiedź 290 wizyt
pytanie zadane 5 czerwca 2019 w C i C++ przez profesorek96 Szeryf (91,420 p.)

92,579 zapytań

141,432 odpowiedzi

319,662 komentarzy

61,964 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!

...