-
X-Received: by 10.36.34.209 with SMTP id o200mr763861ito.0.1499814008531; Tue, 11 Jul
2017 16:00:08 -0700 (PDT)
X-Received: by 10.36.34.209 with SMTP id o200mr763861ito.0.1499814008531; Tue, 11 Jul
2017 16:00:08 -0700 (PDT)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
0.net!news.glorb.com!v202no45668itb.0!news-out.google.com!s132ni118itb.0!nntp.g
oogle.com!v202no45662itb.0!postnews.google.com!glegroupsg2000goo.googlegroups.c
om!not-for-mail
Newsgroups: pl.comp.programming
Date: Tue, 11 Jul 2017 16:00:08 -0700 (PDT)
In-Reply-To: <a...@n...v.pl>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=77.254.46.112;
posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
NNTP-Posting-Host: 77.254.46.112
References: <ojbd2k$m8a$1@node1.news.atman.pl> <ojdmh3$1u2$3@node2.news.atman.pl>
<6...@g...com>
<oje1q0$cv5$1@node2.news.atman.pl>
<c...@g...com>
<ojghmi$no5$1@node2.news.atman.pl>
<d...@g...com>
<ojgj5c$oul$1@node2.news.atman.pl> <ojgjjo$pam$1@node2.news.atman.pl>
<f...@g...com>
<ojgmpg$riu$1@node1.news.atman.pl>
<b...@g...com>
<ojgnpv$ses$1@node1.news.atman.pl>
<f...@g...com>
<ojj04l$2q6$3@node1.news.atman.pl>
<7...@g...com>
<ojmhb1$ie7$1@node1.news.atman.pl>
<a...@g...com>
<ojoq0n$cv4$1@node2.news.atman.pl>
<3...@g...com>
<5...@g...com>
<2...@g...com>
<1...@g...com>
<a...@n...v.pl>
<c...@g...com>
<a...@n...v.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <2...@g...com>
Subject: Re: Algorytm hex,dec<->liczba
From: "M.M." <m...@g...com>
Injection-Date: Tue, 11 Jul 2017 23:00:08 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Xref: news-archive.icm.edu.pl pl.comp.programming:210711
[ ukryj 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
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- 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
Najnowsze wątki
- 2024-12-21 Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 2024-12-21 Ideologia Geniuszy-Mocarzy dostępna na nowej s. WWW energokod.pl
- 2024-12-21 ciekawy układ magnetofonu
- 2024-12-21 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2024-12-21 Warszawa => Java Developer <=
- 2024-12-21 Zalesie Borowe => Medical Equipment Service Engineer <=
- 2024-12-21 Żerniki => Specjalista ds. Employer Brandingu <=
- 2024-12-21 jak tacy debile
- 2024-12-20 Precedensy politycznie motywowanego nie wydawania w UE
- 2024-12-20 Obrońcy
- 2024-12-20 Obrońcy
- 2024-12-20 Obrońcy
- 2024-12-20 Gdańsk => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-20 czyste powietrze
- 2024-12-20 Katowice => Analyst in the Trade Development department (experience wi