-
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
- 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-05-15 Warszawa => Frontend Developer - React <=
- 2024-05-15 Marki => ERP Implementer <=
- 2024-05-15 Marki => Wdrożeniowiec ERP <=
- 2024-05-15 System operacyjny dla 6800?
- 2024-05-15 Ulm => IT Netzwerktechniker (m/w/d) <=
- 2024-05-15 Ulm => Technischer Rollouter (d/m/w) <=
- 2024-05-15 Zabrze => Junior HelpDesk <=
- 2024-05-15 Wrocław => Consultant/Implementer Comarch ERP XL <=
- 2024-05-15 Niemcy: "Alles fuer Deutschland" jest zakazane (dla AfD - nieprawomocna grzywna)
- 2024-05-14 Ustawy o rejestracji obcych agentów (wpływu): fuj Gruzja/Rosja v. cacy USA
- 2024-05-14 VMWare :)
- 2024-05-14 Ulm => Solution Engineer (m/w/d) Data Center Technologies <=
- 2024-05-14 Będziemy się znowu zrzucać na elektryki...
- 2024-05-14 Pompa ciepla Kaisai
- 2024-05-14 Przyłączenie działki do sieci elektrycznej