Article View: pl.comp.lang.c
Article #309028Re: Jak sprawdzić jakiej klasy jest obiekt (wskaźnik) ?
From: bartekltg
Date: Sat, 22 Apr 2017 18:47
Date: Sat, 22 Apr 2017 18:47
53 lines
2104 bytes
2104 bytes
On 22.04.2017 19:38, Przemek Biernat wrote:
> No dobra przyjmijmy że wydajność jest podobna choć nie mam pewności to jak tym sposobem sprawdzisz że obiekt obj jest klasy c2 i gdzie c1 dziedziczy po c1
Jeśli jest tam poliformizm, to rozróżnia.
Albo czegoś nie rozumiem;]
#include <iostream>
#include <vector>
#include <typeinfo>
class foo{
protected:
vector<int> data;
public:
foo() {data.push_back(0);data.push_back(1);}
virtual int bla() { return data.back(); }
};
class bar: public foo
{public:
bar() : foo() {}
int bla() { return data.front();}
};
void check( foo * ptr ){
cout<< typeid(*ptr).name()<<endl;
cout<< ptr->bla()<<endl;
}
int main(int argc, char *argv[]){
foo * ptr = new foo();
check( ptr );
delete ptr;
ptr = new bar();
check( ptr );
return 0;
}
Zwraca
3foo
1
3bar
0
pzdr
bartekltg
Technical Details
Message-ID:
<odg8fv$e46$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>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: Sat, 22 Apr 2017 20:47:26 +0200 Organization: ATMAN - ATM S.A. Lines: 58 Message-ID: <odg8fv$e46$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> NNTP-Posting-Host: 89-70-119-159.dynamic.chello.pl Mime-Version: 1.0 X-Trace: node2.news.atman.pl 1492886847 14470 89.70.119.159 (22 Apr 2017 18:47:27 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Sat, 22 Apr 2017 18:47:27 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 In-Reply-To: <6a23e119-a538-4d44-a3d6-9155442972e7@googlegroups.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit