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

Kurs miroslaw zelent, dziedziczenie

Object Storage Arubacloud
0 głosów
605 wizyt
pytanie zadane 20 stycznia 2016 w C i C++ przez Ziuziek Mądrala (5,140 p.)

Mam pytanie bo nie rozumiem jednej rzeczy,

zamieszczam kod caly:

http://wklej.org/id/1912200/

I teraz mam pytanie odnosnie dziedziczenia konstruktora:

konstruktor:

    Punkt(string n="S", float a=0, float b=0)
    {
        nazwa = n;
        x = a;
        y = b;
    }

Konstruktor kolo dziedziczacy z klasy punkt:

    Kolo(string nk="Kolko", string np="s", float a=0, float b=0, float pr=1)
    :Punkt(np, a, b)
    {
        nazwa = nk;
        r = pr;
    }

I teraz mam pytanie odnosnie tego

:Punkt(np, a, b)

Nie rozumiem skad i jak wskakuja zmienne w te miejsca z tam tego konstruktora, skad co sie bierze, skad c++ wie ze w miejsce np ma wskoczyc  nazwa punktu, i na miejsce a i b współrzędne.

 

2 odpowiedzi

+1 głos
odpowiedź 20 stycznia 2016 przez Patrycjerz Mędrzec (192,320 p.)
Jest to tzw. lista inicjalizacyjna i występuje zawsze z konstruktorem - możesz w niej zainicjalizować dane jeszcze przed stworzeniem obiektu.

A jak dane przechodzą do tego drugiego konstruktora? Są brane z argumentów pierwszego.
komentarz 20 stycznia 2016 przez Ziuziek Mądrala (5,140 p.)
Kolo(string nk="Kolko", string np="s", float a=0, float b=0, float pr=1)
    :Punkt(np, a, b)

Chodzi mi o to ze przepisana jest zmienna np, bok a i bok b a w konstruktorze z klasy Punkt

nie ma tych zmiennych to jak to przechodzi, tego nie rozumiem skad c++ wie ze z ktorej zmiennej do ktorej ma wskoczyc.?
komentarz 20 stycznia 2016 przez Patrycjerz Mędrzec (192,320 p.)

Jak nie ma? Przecież są zadeklarowane w konstruktorze Kolo.

komentarz 20 stycznia 2016 przez Ziuziek Mądrala (5,140 p.)
No dobra jest w konstruktorze zmienna string np, a nizej lista inicjalizujaca dziedziczy zmienne np, a i b z klasy punkt ale nie ma tam np przeciez to jak ona dziedziczy z tam tad
+1 głos
odpowiedź 20 stycznia 2016 przez Radfler VIP (101,030 p.)
:Punkt(np, a, b)

Jest to lista inicjalizacyjna konstruktora. Jeżeli klasa X dziedziczy z klasy Y, to na liście inicjalizacyjnej konstruktora X powinno (aczkolwiek ni musi) się pojawić wywołanie konstruktora (dowolnego) z klasy Y. Jest to jakby zwykłe wywołanie funkcji (tu konstruktora), czyli (jak ty to ująłeś) C++ wstawia podane w konstruktorze argumenty do konstruktora klasy podstawowej.

komentarz 20 stycznia 2016 przez Ziuziek Mądrala (5,140 p.)
Chodzi o to ze np nie ma zadeklarowanego w konstruktorze Punkt z klasy Kolo wiec skad wiadomo jaka zmienna ma przejac np?
komentarz 20 stycznia 2016 przez Radfler VIP (101,030 p.)

Konstruktor klasy Kolo po prostu wywołuje konstruktor z klasy Punkt, o ten:

Punkt(string n="S", float a=0, float b=0);

Jeżeli przekazuję do tego konstruktora zmienną np jako pierwszy argument, to znaczy że zmienna n (luźno mówiąc) dostanie wartość zmiennej np.

komentarz 20 stycznia 2016 przez Ziuziek Mądrala (5,140 p.)
A czyli wazna jest kolejnosc, i dziedziczy to na zasadzie kolejnosci, 1 do 1 , 2 do 2 , 3 do 3 tak?
komentarz 20 stycznia 2016 przez Radfler VIP (101,030 p.)
Tak, kolejność argumentów w funkcji jest ważna.

Podobne pytania

0 głosów
3 odpowiedzi 596 wizyt
pytanie zadane 22 stycznia 2016 w C i C++ przez Remo Początkujący (280 p.)
0 głosów
1 odpowiedź 591 wizyt
0 głosów
1 odpowiedź 228 wizyt
pytanie zadane 30 kwietnia 2021 w C# przez Adamek185wp Obywatel (1,280 p.)

92,615 zapytań

141,465 odpowiedzi

319,782 komentarzy

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

...