🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Jak sprawdzić jakiej klasy jest obiekt (wskaźnik) ?

#309030
From: bartekltg
Date: Sun, 23 Apr 2017 12:03
31 lines
2482 bytes
On 23.04.2017 11:53, Przemek Biernat wrote:
> Może to nie jest taki zły pomysł tym bardziej że typeid zwraca
> referencję do struktury, ale żeby sprawdzić czy obiekt jest danego
> typu trzeba porównać dwa stringi co jest mniej wydajne od porównania
> dwóch intów z rozwiązania przy enum. Typeid ma też id tylko teraz
> skąd mam wiedzieć jakie id ma klasa którą chce sprawdzić kiedy klas
> jest kilkadziesiąt.

Nie, nie stringi! type_index od wyniku typeid.

Wygenerować sobie słownik tepeid-> to, co mnie interesuje dla tego
zbioru?
A choćby tak:
http://en.cppreference.com/w/cpp/types/type_index

Tylko mapa nie musi być do stringa, a do tego, co jest naprawdę 
potrzebne. Nawet wskaźnik do spacjalizowanej funkcji.


Niby upierdliwe, ale pilnowanie, by enum i te kilkadziesiat klas
działało dobrze, też wymaga pewnej staranności, zwłąszcza, jak drzewko
dziedzizenia nie jest dwupietrowe.


Z drugiej strony, którejkolweik metody bym nie użył, jeśli
miałbym w kodzie miejsca, gdzie gostaje wskaźnik do klasy bazowej
i muszę wiedzieć, na którą dokładnie klasę włąśnie pokazuję,
uznałbym, zę jednak mogłęm to zaprojektować lepiej:)

pzdr
bartekltg
Technical Details
Message-ID: <odi576$9l6$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-mail
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>

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 14:03:50 +0200
Organization: ATMAN - ATM S.A.
Lines: 37
Message-ID: <odi576$9l6$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>
NNTP-Posting-Host: 89-70-119-159.dynamic.chello.pl
Mime-Version: 1.0
X-Trace: node2.news.atman.pl 1492949030 9894 89.70.119.159 (23 Apr 2017 12:03:50 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Sun, 23 Apr 2017 12:03:50 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
In-Reply-To: <d4556e86-8963-4917-9ce4-0827261ab89c@googlegroups.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit