🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #309687

Re: Dziedziczcenie i metody

#309687
From: AK
Date: Sun, 10 Jun 2018 20:18
47 lines
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-mail
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>

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