🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

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

#309028
From: bartekltg
Date: Sat, 22 Apr 2017 18:47
53 lines
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-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>

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