Article View: pl.comp.lang.c
Article #267703Re: Ciemna strona C++
From: Sebastian Kaliszewski
Date: Thu, 22 Nov 2007 15:19
Date: Thu, 22 Nov 2007 15:19
83 lines
4361 bytes
4361 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. >>>a pobiera >>>wskaźnik do obiektów bar -- tam wykonuje ordynarne rzutowanie. >> >>Nie wykonuje żadnego rzutowania. W C++ do zwykłej funkcji *nie można* >>przekazać tablicy. Statycznie przekazuje wskaźnik i to jest tego efekt. > > Oh i ah, jaki on wielki. > > A mnie się udało to zrobić poprawnie, bo jestem tylko zwykły zjadacz chleba > i wolę cieszyć się pozytywami ;-P. zwykłej funkcji nie szablonu. Udało ci się przekazać tablicę o statycznie ustalonym rozmiarze. O rozmiarze którego język nigdzi epo drodze nie zgubił. > 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. >>>Tymbardziej, >>>że po dodaniu szablonowego parametru program działa poprawnie, czyli >>>kompilator dobrze wie jakiego typu jest przekazywana tablica. >> >>Wie tylko czasem. Ren trick z szablonem ma jedną zasadniczą wadę -- można >>przekazać tylko i wyłącznie tablicę której rozmiar jest znany (co C++ >>stara się maksymalnie utrudnić) > > 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. >>i dla każdego rozmiaru tablicy jest osobna >>instancja szablonu > > Bzdura! Tam jest wskaźnik. To nie ma OO. Dziecko wylane z kompielą. >>>W żadnym języku z mi znanych takie coś nie przechodzi. >> >>Jakto? Przechodzi w C i w C++. > > Dorzucam Asm. > > Licytujesz się dalej? Może Fortran? Nie. Ps. Chętnie wrócę do tematu kasowania metod w Pythonowych klasach. To jest język dynamiczny. Jak skasujesz potrzebną metodę, to dostaniesz wyjątekiem przy próbie jej użycia -- jak przy tysiącach innych sytuacji dynamicznych. To jest ficzer bardzo rzadko przydatny, ale też i rzadko używany i dla newbies przykryty -- grzebanie w __dict__ to zagadnienia dla zaawansowanych. Kiedy może się przydać? Jak masz logicznie podzieloną aplikację na czas inicjalizacji (gdy np. wczytujesz pliki konfiguracyjne, inicjujesz obiekty mające życ do końca itd) i czas właściwego wykonania. Wówczas użycie niektórych metod wskazane w czasie inicjalizaji jest złym pomeysłem w czasie właściwego wykonania -- i można je wywalić. pzdr \SK
Technical Details
Message-ID:
<fi45ok$g39$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>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: Thu, 22 Nov 2007 16:19:36 +0100 Organization: Softax news server Lines: 83 Message-ID: <fi45ok$g39$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> NNTP-Posting-Host: 83.18.189.42 Mime-Version: 1.0 X-Trace: atlantis.news.tpi.pl 1195744386 10112 83.18.189.42 (22 Nov 2007 15:13:06 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Thu, 22 Nov 2007 15:13:06 +0000 (UTC) User-Agent: Mozilla Thunderbird 1.0.2 (X11/20050322) X-Accept-Language: en-us, en In-Reply-To: <fi20va$5ud$1@news.vectranet.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit