-
1. Data: 2010-06-14 08:04:11
Temat: typeid
Od: Krzysztof Poc <f...@w...pl>
Witajcie
Czy mozecie napisac mi dlaczego te typy sa rozne. Przyklad wzialem z
ksiazki i
autor twierdzi ze ponizsze typy sa takie same i mi tez sie wydaje ze w
tym
przypadku sa takie same.
dzieki za pomoc
#include <iostream>
#include <typeinfo>
using namespace std;
class Shape { public: virtual ~Shape() {}; };
class Circle : public Shape {};
int main() {
Circle c;
Shape* s = &c;
Circle* cp = 0;
if(typeid(s) == typeid(cp))
cout << "Ok" << endl; // dlaczego nie jest wykonywane ???
return 0;
}
-
2. Data: 2010-06-14 12:43:20
Temat: Re: typeid
Od: "Marcin 'Qrczak' Kowalczyk" <q...@k...org.pl>
On Jun 14, 10:04 am, Krzysztof Poc <f...@w...pl> wrote:
> Witajcie
>
> Czy mozecie napisac mi dlaczego te typy sa rozne. Przyklad wzialem z
> ksiazki i
> autor twierdzi ze ponizsze typy sa takie same i mi tez sie wydaje ze w
> tym
> przypadku sa takie same.
>
> dzieki za pomoc
>
> #include <iostream>
> #include <typeinfo>
> using namespace std;
>
> class Shape { public: virtual ~Shape() {}; };
> class Circle : public Shape {};
>
> int main() {
> Circle c;
> Shape* s = &c;
> Circle* cp = 0;
> if(typeid(s) == typeid(cp))
> cout << "Ok" << endl; // dlaczego nie jest wykonywane ???
Bo to są typy wskaźników, decydowane statycznie. Spróbuj typeid(*s) i
typeid(*cp).
(Nie jestem pewien, czy to to, nie używałem typeid.)