Article View: pl.comp.lang.c
Article #309687Re: Dziedziczcenie i metody
From: AK
Date: Sun, 10 Jun 2018 20:18
Date: Sun, 10 Jun 2018 20:18
47 lines
2137 bytes
2137 bytes
On 2018-06-07 15:46, Radosław Korzeniewski wrote:
>> Ale to wymaga znajomości klasy podstawowej poza implementacja klasy co jest sprzeczne z ideą
>> dziedziczenia.
Prawda.
> Dodam jeszcze, że "obejściem problemu" było zwyczajne skopiowanie send() z klasy A do klasy B.
> Ale uważam, że to najmniej eleganckie rozwiązanie.
Nie tyle nieelegackie, ale po prostu błędne.
> Chociaż z drugiej strony jak coś jest głupie ale działa to nie jest głupie.
Nistety, ale wciaz jest glupie (a nawet gorzej). :)
> Jednak wolał bym dowiedzieć się (i nauczyć) dlaczego mój tok rozumowania jest błędny - bo jest.
Stosujesz polimorfizm, a wolania stosujesz "zwykłe"/niepolimorficzne.
Po prostu zwyczajnie nei dajesz szans zadzialania polimorfizmowi.
Spóbuj zwyczajnie/książkowo:
class A
{
public:
bool send() { return send(0); }
virtual bool send(int flags) = 0;
};
class B : public A
{
public:
virtual bool send(int flags) { return 123 | 0x02; }
};
int main()
{
A& b = B(); // sedno sprawy
b.send();
return 0;
}
PS: ...a najlepiej porzuć zgrzybiałego staruszka z dwoma krzyżykami
na karku np. na rzecz Pythona :)
AK
Technical Details
Message-ID:
<pfk129$ni6$1@gioia.aioe.org>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net!1.eu.feeder.erje.net!news.uzoreto.com!aioe.org!.POSTED!not-for-mailReferences:
<342f89bb-b3d4-4c87-9dd7-97a572d63ab0@googlegroups.com> <pfbb7c$9cm$1@node1.news.atman.pl> <67735517-9182-4882-88ba-475475884d14@googlegroups.com> <9b36b09b-4119-4e03-b2de-74904c09d216@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net!1.eu.feeder.erje.net!news.uzoreto.com!aioe.org!.POSTED!not-for-mail From: AK <nobody@nowhere.net> Newsgroups: pl.comp.lang.c Subject: Re: Dziedziczcenie i metody Date: Sun, 10 Jun 2018 22:18:18 +0200 Organization: Aioe.org NNTP Server Lines: 47 Message-ID: <pfk129$ni6$1@gioia.aioe.org> References: <342f89bb-b3d4-4c87-9dd7-97a572d63ab0@googlegroups.com> <pfbb7c$9cm$1@node1.news.atman.pl> <67735517-9182-4882-88ba-475475884d14@googlegroups.com> <9b36b09b-4119-4e03-b2de-74904c09d216@googlegroups.com> NNTP-Posting-Host: +zhT6hJgVtWPfe8sNnJuxg.user.gioia.aioe.org Mime-Version: 1.0 X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 X-Notice: Filtered by postfilter v. 0.8.3 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit