Article View: pl.comp.lang.c
Article #267662Re: Ciemna strona C++
From: Jedrzej Dudkiewicz
Date: Fri, 09 Nov 2007 16:00
Date: Fri, 09 Nov 2007 16:00
37 lines
2529 bytes
2529 bytes
> 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?
}
Znaczy - trzebaby niejawnie jakoś konwertować to na wskaźniki... No nie
wiem, jakaś porażka. Czyli jeszcze raz - o ile przedstawiony problem
jest prawdziwy, to przykład jest całkiem z kosmosu - stąd łatwo się go
czepiać.
> To jest karygodny błąd języka. Tłumaczenie wielbicieli C++, żeby użyć
> ciężkiego wektora czy niewiele lżejszego, ale w ogóle nie należącego do
> języka boost::array jest poprostu żałosne.
A co jest ciężkiego w vectorze? To nie zaczepka, tylko ciekawość, żeby
nie było.
JD
Technical Details
Message-ID:
<fh206f$2d6$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>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: Fri, 09 Nov 2007 17:00:42 +0100 Organization: SuperMedia - http://www.sm.pl Lines: 37 Message-ID: <fh206f$2d6$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> NNTP-Posting-Host: 212.180.147.34 Mime-Version: 1.0 X-Trace: news.supermedia.pl 1194624015 2470 212.180.147.34 (9 Nov 2007 16:00:15 GMT) X-Complaints-To: abuse@supermedia.pl NNTP-Posting-Date: Fri, 9 Nov 2007 16:00:15 +0000 (UTC) In-Reply-To: <fh1tjd$dtt$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