Article View: pl.comp.lang.c
Article #267713Re: Ciemna strona C++
From: Sebastian Kaliszewski
Date: Fri, 23 Nov 2007 13:06
Date: Fri, 23 Nov 2007 13:06
86 lines
4174 bytes
4174 bytes
Seweryn Habdank-Wojewódzki wrote:
>>>>>A błąd wynika, z
>>>>>faktu, że statycznie Pan F. przekazuje tablicę obiektów foo,
>>>>
>>>>Nie.
>>>
>>>A tak. Proszę wróć do tego slajdu i zobacz co kolo robi.
>>
>>A nie. Przekazuje wskaźnik do funkcji której interfejs oznacza że oczekuje
>>na wskaźnik typu kompatybilnego.
>
>
> Szkoda, że kompilator to interpretuje jako rzutowanie, a szablon to rozumie.
Szablon dopasowuje się do statycznego typu zmiennej z miejsca konkretyzacji.
> Zresztą zastosowanie szablonu nie wpływa na poprawność kodu, bo kod sam
> generuje potrzebne funkcje, które i tak czy w wersji dynamicznej czy nie i
> tak wyglądałyby tak samo.
No właśnie nie.
> IMHO problem jest wydumany, bo rozwiązanie
> okazuje się być proste i skuteczne.
Jest tylko rozwiązaniem czego innego. Ten problem raczej lepiej rozwiązać tak:
void test (whatever_ptr<A> arr[])
{
...
}
> Nie. Przekazałem statycznie rozwinięty wskaźnik.
I to jest źle, bo zmieniasz semantykę tego przekazania. I tylko odsuwasz
problem. Kontrprzykłąd poniżej.
[...]
> To działa prosto i skutecznie. No chyba, że masz kontrprzykład -- a masz
> duże szanse na posiadanie takowego.
A *arr = new B[10];
test(arr);
:)
>>>Pytanie kontrolne:
>>>
>>>Czemu w Javie, C#, C i C++ są "ichnie" GUI, a np. taki Python nie ma
>>>swojego? Jak jest taki wielki to niech ma.
>>
>>Python ma swoje. W standardowej dystrybucji.
>
>
> A jak się nazywa może mi powiesz, bo zazwyczaj to o czym słyszę to wszystko
> jest obce.
PyTk. Jest poniekąd obce, ale jest wbudowane. Taki paradoks.
> Czyżby ideał miał wady?
Ubogie. Normalnie używa się PyQt czy WxPythona.
>>>Bajka, ja przekazuję typ poprzez wskaźnik, tylko że umnie typ jest
>>>poprawnie identyfikowany. Popracuj z tym kodem to zobaczysz jak działa.
>>>Tablica może mieć zmienny rozmiar.
>>
>>Wtedy też jest do bani. Tracisz dynamiczny polimorfizm.
>
> Co proszę. Pokaż co tracę? Taki kod pokaż co faktycznie coś się dzieje
> złego. Zresztą tam nie było polimorfizmu dynamicznego od samego początku.
> Tam Pan F. statycznie utworzył obiekty typu foo.
To jest przykład. Przekazania parametrów mają określoną semantykę, którą ty
zmieniasz. Zresztą pokazałęm rozwiązanie poprawne, które w dodatku nie daje
się tak łatwo oszukać jak zrobienie A* arr = new B[10];
Czemu takie coś przechodzi?!?? Nie ma prawa działać, ale przechodzi :)
[...]
pzdr
\SK
Technical Details
Message-ID:
<fi6ib2$uf9$1@bozon2.softax.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!bozon.softax.com.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> <fh2ma2$rd0$1@news.vectranet.pl> <fh2po8$d0c$1@news.dialog.net.pl> <fh9v4k$mss$2@bozon2.softax.pl> <fhaest$9or$1@news.vectranet.pl> <fheq5d$iot$1@bozon2.softax.pl> <fhhfae$bj$1@news.vectranet.pl> <fi1ot2$24s$1@bozon2.softax.pl> <fi20va$5ud$1@news.vectranet.pl> <fi45ok$g39$1@bozon2.softax.pl> <fi4m84$nme$1@news.vectranet.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.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!bozon.softax.com.pl!not-for-mail From: Sebastian Kaliszewski <s@get.it.off.to.reply.informa.pl> Newsgroups: pl.comp.lang.c Subject: Re: Ciemna strona C++ Date: Fri, 23 Nov 2007 14:06:32 +0100 Organization: Softax news server Lines: 86 Message-ID: <fi6ib2$uf9$1@bozon2.softax.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> <fh2ma2$rd0$1@news.vectranet.pl> <fh2po8$d0c$1@news.dialog.net.pl> <fh9v4k$mss$2@bozon2.softax.pl> <fhaest$9or$1@news.vectranet.pl> <fheq5d$iot$1@bozon2.softax.pl> <fhhfae$bj$1@news.vectranet.pl> <fi1ot2$24s$1@bozon2.softax.pl> <fi20va$5ud$1@news.vectranet.pl> <fi45ok$g39$1@bozon2.softax.pl> <fi4m84$nme$1@news.vectranet.pl> NNTP-Posting-Host: 83.18.189.42 Mime-Version: 1.0 X-Trace: nemesis.news.tpi.pl 1195823146 19089 83.18.189.42 (23 Nov 2007 13:05:46 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Fri, 23 Nov 2007 13:05:46 +0000 (UTC) User-Agent: Mozilla Thunderbird 1.0.2 (X11/20050322) X-Accept-Language: en-us, en In-Reply-To: <fi4m84$nme$1@news.vectranet.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit