eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingAlgorytm hex,dec<->liczba › Re: Algorytm hex,dec<->liczba
  • Data: 2017-07-12 01:00:08
    Temat: Re: Algorytm hex,dec<->liczba
    Od: "M.M." <m...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On Tuesday, July 11, 2017 at 11:53:44 PM UTC+2, slawek wrote:
    > On Tue, 11 Jul 2017 13:30:26 -0700 (PDT), "M.M." <m...@g...com>
    > wrote:
    > > Nie. Ma to takie zalety, (rzecz jasna chodzi o zalety względem
    > > konkurencyjnego rozwiązania jakim jest agregacja wielu obiektów
    > > wewnątrz klasy bazowej)
    >
    > A w takiej np. Javie można użyć interfejsów.
    Zalety, o której pisałem wyżej, nie można uzyskać dzięki
    interfejsom. Każdą metodę interfejsu trzeba nadpisać w
    klasie implementującej ten interfejs. W przypadku agregacji,
    o której piszesz poniżej a ja też pisałem powyżej, nie
    trzeba nadpisywać, ale bez nadpisania nie ma się dostępu do
    metod agregowanych klas. Tylko w przypadku wielodziedziczenia
    ma się dostęp do składowych więcej niż dwóch klas (poprawnie:
    więcej niż dwóch hierarchii klas) bez reimplementacji.

    Przykład z dziedziczeniem pojedynczym

    class A {
    metoda1() {
    }
    };

    class B1 {
    A a;
    };

    class B2 : A {
    };

    B1 b1;
    b1.metoda1(); // błąd bez reimplementacji

    B2 b2;
    b2.metoda1(); // działa bez reimplementacji

    ////////////////////////////////////////////

    To samo będzie w przypadku wielodziedziczenia.

    class A {
    metodaA() {}
    };

    class B {
    metodaB() {}
    };

    class C1 {
    A a;
    B b;
    };


    class C2 : A, B {
    };


    C1.metodaA() // błąd;
    C1.metodaB() // błąd

    Muszę się męczyć i dopisywać:

    class C1 {
    A a;
    B b;
    metodaA() {
    a.metodaA();
    }
    metodaB() {
    b.metodaB();
    }
    };

    W przypadku klasy C2, kompilator za mnie to dopisze. Gdy używam C++, to
    jeszcze mam dziedziczenie wirtualne, aby lepiej kompilatorowi
    podpowiedzieć o jakie zachowanie klasy wyprowadzonej z kilku klas mi
    chodzi.




    > Albo mieć klasę z
    > zagnieżdżonymi klasami które dziedziczą osobno.
    To jest właśnie agregacja.

    > Jakoś to musi
    > działać, skoro ludzie piszą w tej Javie i nie narzekają.
    Działa, ale trzeba dopisać ręcznie to co może dopisać kompilator.


    > W
    >
    > Sorry, Python to nie jest szczególnie ogarnięty język, ale jak
    > porównać co można przez szablony w C++, a co można bez szablonów w
    > Pythonie (metaprogramowanie), to Python wygrywa bezdyskusyjnie.
    Rozwiń proszę.


    Pozdrawiam




Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: