Article View: pl.comp.lang.c
Article #309032Re: Jak sprawdzić jakiej klasy jest obiekt (wskaźnik) ?
From: bartekltg
Date: Sun, 23 Apr 2017 14:48
Date: Sun, 23 Apr 2017 14:48
43 lines
2787 bytes
2787 bytes
On 23.04.2017 16:03, Przemek Biernat wrote: > Przez uproszczenie const char * nazywam stringiem, jestem pewien > prawie na 100% że jest to wolniejsze ale skoro gui to może nie ma > znaczenia. Trochę się poszpieszyłęm. Myślałem, że mówisz o tym .name() Chodziło mi o to, że w tamtym kodzie uzyłęm metody name z klasy typename, bo tak było szybciej. Do porównywania w kodzie lepiej użyć albo metody hash_code (ale mogą być konflikty i wylądujemy w ciemnym miejscu) albo, najelpiej funkcji type_index. piszę type_index(typeid(*ptr)) i mam unikalny size_t. Ale rzeczywisćie, przynajmniej w gcc, tam w kod zerknąłem, type_info to opakowanie na łancuch, więc dość obciążające w porównaniu do Twojego rozwiązania. > Najlepiej byłoby zrobić mape z enumami gdzie value to wskaźnik na > obiekt funkcyjny, rozumiem że tak funkcyjny/miałby renderować > wyświetlać. Po enumie dostajesz funktor który renderuje obiekt. W takim wypadku nie wystarczy virtualna funkcja na gorze hierarchii? > Tą mape opokowujesz w klase fabryka i jest. Ale faktycznie jak jest > dużo klas to enum jest duży. > A i zapomniałem metoda type() powinna być implementowana tylko w > klasach liściach co O ile wszytkie okiekty, których używasz, są typami z lisci hierarhii. > upraszcza zarządzanie chociaż by ze wzglęu na > wsparcie kompilatora Dlaczego? pzdr bartekltg
Technical Details
Message-ID:
<odies3$iqc$1@node2.news.atman.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mailReferences:
<o79kim$psa$1@node1.news.atman.pl> <o79kim$psa$1@node1.news.atman.pl> <almarsoft.6916192281123605763@news.v.pl> <b514bb54-fc83-472e-8fa9-d16bf8d878d0@googlegroups.com> <odf6rg$53e$1@node1.news.atman.pl> <6a23e119-a538-4d44-a3d6-9155442972e7@googlegroups.com> <odg8fv$e46$1@node2.news.atman.pl> <d4556e86-8963-4917-9ce4-0827261ab89c@googlegroups.com> <odi576$9l6$1@node2.news.atman.pl> <2ff067f6-dd5d-49b9-af20-feabc253c064@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail From: bartekltg <bartekltg@gmail.com> Newsgroups: pl.comp.lang.c Subject: Re: Jak sprawdzić jakiej klasy jest obiekt (wskaźnik) ? Date: Sun, 23 Apr 2017 16:48:35 +0200 Organization: ATMAN - ATM S.A. Lines: 45 Message-ID: <odies3$iqc$1@node2.news.atman.pl> References: <o79kim$psa$1@node1.news.atman.pl> <o79kim$psa$1@node1.news.atman.pl> <almarsoft.6916192281123605763@news.v.pl> <b514bb54-fc83-472e-8fa9-d16bf8d878d0@googlegroups.com> <odf6rg$53e$1@node1.news.atman.pl> <6a23e119-a538-4d44-a3d6-9155442972e7@googlegroups.com> <odg8fv$e46$1@node2.news.atman.pl> <d4556e86-8963-4917-9ce4-0827261ab89c@googlegroups.com> <odi576$9l6$1@node2.news.atman.pl> <2ff067f6-dd5d-49b9-af20-feabc253c064@googlegroups.com> NNTP-Posting-Host: 89-70-119-159.dynamic.chello.pl Mime-Version: 1.0 X-Trace: node2.news.atman.pl 1492958915 19276 89.70.119.159 (23 Apr 2017 14:48:35 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Sun, 23 Apr 2017 14:48:35 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 In-Reply-To: <2ff067f6-dd5d-49b9-af20-feabc253c064@googlegroups.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit