🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Ciemna strona C++

#267713
From: Sebastian Kaliszewski
Date: Fri, 23 Nov 2007 13:06
86 lines
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-mail
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>

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