-
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
Następne wpisy z tego wątku
- 12.07.17 08:21 slawek
- 12.07.17 11:43 Roman Tyczka
- 12.07.17 14:05 slawek
- 12.07.17 15:24 M.M.
- 12.07.17 20:44 AK
Najnowsze wątki z tej grupy
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-06-04 Kraków => Spedytor międzynarodowy <=
- 2024-06-04 Re: Mało? Dużo?
- 2024-06-04 Re: Mało? Dużo?
- 2024-06-03 dziękuję nie tankuję
- 2024-06-03 Bo konie to ...
- 2024-06-03 narząd nieużywany zanika
- 2024-06-02 Restart PC-ta
- 2024-06-03 polskie miasta są małe
- 2024-06-04 Wrocław => Senior React Native Developer <=
- 2024-06-04 Warszawa => Sales Executive <=
- 2024-06-04 Białystok => ERP Implementer <=
- 2024-06-03 Zielona Góra => Engineer R&D Mechanic <=
- 2024-06-03 Kielce => UX/UI Designer <=
- 2024-06-03 Białystok => Inżynier DevOps Conexa First (Kontraktor) <=
- 2024-06-03 Warszawa => Technical Leader (Java Background) <=