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

mam dziecko czyli dziedziczenie w programowaniu

Object Storage Arubacloud
0 głosów
168 wizyt
pytanie zadane 13 marca 2016 w C i C++ przez niezalogowany

Witam, chciałbym się was zapytać czy ten kod (patrz w dół) jest prawidłowy, bo działa dobrze ale czy takie coś jest dobre.

#include <iostream>

using namespace std;

class A
{
protected:
    int a;
    int b;
    int c;
};

class B: public A
{
public:
    B(int d,int e, int f)
    {
        a=d;
        b=e;
        c=f;
    }

    void ustaw()
    {
        a=3;
        b=4;
        c=6;
    }
    void wyswietl()
    {
        cout<<a<<endl<<b<<endl<<c<<endl;
    }
};

class C: public A
{
public:
    void ustaw()
    {
        a=20;
        b=100;
        c=120;
    }
    void wyswietl()
    {
        cout<<a<<endl<<b<<endl<<c<<endl;
    }
};

int main()
{
    B b(29,56,123);
    //b.ustaw();
    b.wyswietl();

    C c;
    c.ustaw();
    c.wyswietl();
    b.wyswietl();

    return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 13 marca 2016 przez Aisekai Nałogowiec (42,190 p.)
wybrane 13 marca 2016
 
Najlepsza
1. Pola powinny być prywatne, a dostęp do pól klasy nadrzednej powinien być przy pomocy metod (akcesor i mutator) 2. W klasie C brakuje konstruktora. 3.Klasa A ma służyć tylko do dziedziczenia tak? To są takie moje uwagi
komentarz 13 marca 2016 przez niezalogowany
to czy są prywatne itd to sam spoko i to że nie ma konstruktora, bo nie oto mi chodzi. Punkt 3 u Ciebie masz rację, ma służyć tylko do dziedziczenia i o to właśnie pytam, czy takie coś jest dozwolone.
komentarz 13 marca 2016 przez Aisekai Nałogowiec (42,190 p.)
Jest coś takiego możliwe. Np z klasy Zwierzę, może dziedziczyc kot, pies, ptak etc, mimo to klasa Zwierzę nigdy nie będzie tworzony obiekt klasy Zwierzę.
komentarz 13 marca 2016 przez niezalogowany

Naprawdę?? Ale super. To mam jeszcze tylko 2 pytania, czy można odziedziczyć funkcję zaprzyjaźnioną (albo jakąś inną), i czy (posłużę się Twoim przykładem) można w klasie Zwierze zrobić funkcję virtual i dziedziczyć ją. Mam na myśli coś takiego: 

class Zwierze
{
    protected:
        virtual daj_glos();
        int a;
};

 

komentarz 13 marca 2016 przez Aisekai Nałogowiec (42,190 p.)
Bardziej jave umiem, więc odnośnie funkcji zaprzyjaźnionych - wydaje mi się, że je też się dziedziczy - a najłatwiej jest się o tym przekonać, pisząc jakiś program xd. Klasa zwierzę, w moim przykładzie zostałaby utworzona, żeby w trakcie pisania programu (czy też aktualizacji - jak np w grach) jakby została dodana inna klasa np Krokodyl nie trzeba było zmieniać innych Klas/funkcji. Jeżeli klasa Zwierzę ma virtualna metodę dajGlos() i taką samą metodę będzie miała klasa kot, to metoda klasy kot przysloni metodę wirtualna. I zamiast metody z Klasy zwierzę, wykona się metoda klasy Kot.
komentarz 13 marca 2016 przez niezalogowany
ok kumam dziękuję za pomoc miłych 5h i 55min niedzieli :)
komentarz 13 marca 2016 przez Aisekai Nałogowiec (42,190 p.)
Wzajemnie xD

Podobne pytania

0 głosów
2 odpowiedzi 474 wizyt
0 głosów
0 odpowiedzi 462 wizyt
pytanie zadane 15 marca 2022 w C i C++ przez XDBX Użytkownik (640 p.)
0 głosów
2 odpowiedzi 485 wizyt
pytanie zadane 23 listopada 2017 w C i C++ przez Mikołaj Krupiński Początkujący (430 p.)

92,568 zapytań

141,420 odpowiedzi

319,624 komentarzy

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

...