Article View: pl.comp.lang.c
Article #267717Re: Ciemna strona C++
From: Jedrzej Dudkiewicz
Date: Tue, 13 Nov 2007 06:51
Date: Tue, 13 Nov 2007 06:51
37 lines
2632 bytes
2632 bytes
Sebastian Kaliszewski wrote:
> Jedrzej Dudkiewicz wrote:
>>> Przykazywany jest wskaźnik na obiekt klasy pochodnej do funkcji
>>> oczekującej wskaźnika na obiekt klasy bazowej -- to jest
>>> *standardowe* użycie polimorfizmu. To, że funkcja oczekuje
>>> przekazania tablicy, tylko przygłupi, kulawy język nie miesza tablice
>>> ze wskaźnikami to jest to co jest.
>>
>> Wydaje mi się, że o ile przykład pokazuje prawdziwy problem, to sam
>> jest idiotyczny, tzn. strasznie wydumany. W C++, nawet gdyby tablice
>> były obsługiwane prawidłowo, tj. nie byłoby rzutowania (niejawnego)
>> wskaźnika na tablicę, to ten przykład chyba byłby ciągle marny:
>>
>> class A {};
>> class B : public A {
>> public:
>> void do_me() { };
>> };
>>
>> B tablica[3];
>>
>> void fun(A tablica[])
>> {
>> tablica[0].do_me(); // <- co z tym?
>> }
>
> To się nie skompiluje z dwu powodów:
[...]
> 2. Choć A jest nadtypem B, to w poprawionym C++ tablica A nie jest
> nadtypem tablicy B. Podobnei jak i dziś A** nie jest żadnym nadtypem **B.
Napisałeś, że to jest "*standardowe* użycie polimorfizmu" - a mi to w
żadnym wypadku nie wygląda na standardowe użycie. Powtórzę raz jeszcze,
że rozumiem przedstawiony problem, ale chodzi mi też o to, że przykład
jest raczej do dupy.
JD
Technical Details
Message-ID:
<fhbhh9$edg$1@news.supermedia.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.supermedia.pl!not-for-mailReferences:
<fghgeo$spf$1@nemesis.news.tpi.pl> <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl> <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh206f$2d6$1@news.supermedia.pl> <fh9v10$mss$1@bozon2.softax.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.supermedia.pl!not-for-mail From: Jedrzej Dudkiewicz <jedrzej.dudkiewicz@poczta.interia.pl> Newsgroups: pl.comp.lang.c Subject: Re: Ciemna strona C++ Date: Tue, 13 Nov 2007 07:51:50 +0100 Organization: SuperMedia - http://www.sm.pl Lines: 37 Message-ID: <fhbhh9$edg$1@news.supermedia.pl> References: <fghgeo$spf$1@nemesis.news.tpi.pl> <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl> <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh206f$2d6$1@news.supermedia.pl> <fh9v10$mss$1@bozon2.softax.pl> NNTP-Posting-Host: 212.180.147.34 Mime-Version: 1.0 X-Trace: news.supermedia.pl 1194936681 14768 212.180.147.34 (13 Nov 2007 06:51:21 GMT) X-Complaints-To: abuse@supermedia.pl NNTP-Posting-Date: Tue, 13 Nov 2007 06:51:21 +0000 (UTC) In-Reply-To: <fh9v10$mss$1@bozon2.softax.pl> User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.1.8) Gecko/20071009 SeaMonkey/1.1.5 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit