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

Zastosowanie klas w C++

Object Storage Arubacloud
0 głosów
428 wizyt
pytanie zadane 3 listopada 2016 w C i C++ przez Evelek Nałogowiec (28,960 p.)

Witam.

Podam przykład kodu z książki, ponieważ nie rozumiem jednej definicji metody.

To plik nagłówkowy:

#ifndef MYTIME_H_
#define MYTIME_H_

class Time
{
private:
    int hours;
    int minutes;
public:
    Time();
    Time(int h, int m = 0);
    void AddMin(int m);
    void AddHr(int h);
    void Reset(int h = 0, int m = 0);
    Time Sum(const Time & t) const;
    void Show() const;
};

#endif // MYTIME_H_

To plik z metodami klasy Time:

#include <iostream>
#include "mytime0.h"

Time::Time()
{
    hours = minutes = 0;
}

Time::Time(int h, int m)
{
    hours = h;
    minutes = m;
}

void Time::AddMin(int m)
{
    minutes += m;
    hours += minutes / 60;
    minutes %= 60;
}

void Time::AddHr(int h)
{
    hours += h;
}

void Time::Reset(int h, int m)
{
    hours = h;
    minutes = m;
}

Time Time::Sum(const Time & t) const
{
    Time sum;
    sum.minutes = minutes + t.minutes;
    sum.hours = hours + t.hours + sum.minutes / 60;
    sum.minutes %= 60;
    return sum;
}

void Time::Show() const
{
    std::cout << hours << " godzin, " << minutes << " minut";
}

Moje pytanie dotyczy zapisu: Time Time::Sum(const Time & t) const. Co ten zapis oznacza? Time::Sum rozumiem, chodzi tu o to, że funkcja o nazwie Sum odnosi się do klasy Time. Jednak co oznacza dodatkowy zapis Time przed nazwą tej metody oraz Time w nawiasie, gdzie się podaje argumenty. & t oznacza referencje, mam racje? const użyte w nawiasie mówi, że parametr t jest stały. Oraz co oznacza const zastosowane na końcu tej metody? smiley

2 odpowiedzi

+1 głos
odpowiedź 3 listopada 2016 przez unknown Nałogowiec (39,560 p.)
wybrane 31 stycznia 2017 przez Evelek
 
Najlepsza

 Jednak co oznacza dodatkowy zapis Time przed nazwą tej metody oraz Time w nawiasie

Funkcja zwraca obiekt Time a jak argument przyjumuje obiekt Time.

Oraz co oznacza const zastosowane na końcu tej metody?

To, że metoda jest stała, czyli nie modyfikuje składowych obiektu(tylko takie metody można wywoływać na const obiektach).

komentarz 3 listopada 2016 przez Evelek Nałogowiec (28,960 p.)

Dziękuję, wszystko jasne. smiley

+1 głos
odpowiedź 3 listopada 2016 przez Patrycjerz Mędrzec (192,320 p.)

Jednak co oznacza dodatkowy zapis Time przed nazwą tej metody oraz Time w nawiasie, gdzie się podaje argumenty. 

To miało być pytanie? Jeśli tak, to bój się Boga... odsyłam do jakiegokolwiek kursu, w którym są omawiane funkcje i ich parametry.

Tak, zapis z ampersandem oznacza referencję.

const na końcu deklaracji oznacza stałość metody, tzn. uniemożliwia jej modyfikację składników niestatycznych należących do obiektu.

komentarz 3 listopada 2016 przez Evelek Nałogowiec (28,960 p.)

No jednak wolałem się upewnić, aby ktoś to opisał swoimi słowa. smiley Dziękuję za odpowiedź.

Podobne pytania

+1 głos
1 odpowiedź 130 wizyt
pytanie zadane 20 kwietnia 2022 w C i C++ przez Quatil Nowicjusz (130 p.)
0 głosów
1 odpowiedź 534 wizyt
pytanie zadane 9 lutego 2021 w C i C++ przez Miki Bywalec (2,480 p.)
0 głosów
1 odpowiedź 509 wizyt
pytanie zadane 25 listopada 2016 w PHP przez dervil Gaduła (3,030 p.)

92,580 zapytań

141,433 odpowiedzi

319,665 komentarzy

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

...