czy da sie mając sam uchwyt sprawdzic czy jest on uchwytem do obiektu jakiejkolwiek klasy, albo najlepiej czy jest uchwytem do obiektu ktorego klasa dziedziczy po jakiejs konkretnej, wybranej przeze mnie klasy ?
pewnie chodzi Ci i wskaźnik, a nie uchwyt
poszukaj info o RTTI
Tak, wlasnie, o wskaznik mi chodzi.
mozesz tez sprobowac przez rzutowanie ale to malo ort! zachowanie (reinterpret_cast)
// Jejku, takiego orta to dawno nie widziałem - Q
To moze inaczej. Mam klase A i dziedziczaca od niej klase B. W konstruktorze klasy B jednym z parametrow jest wskaźnik do obiektu klasy A. Chce miec mozliwosc weryfikacji, czy podany wskaznik jest rzeczywiscie wskaznikiem do obiektu klasy A, lub klasy po niej dzidziczacej.
uzywasz polimorfizmu? dynamic_cast
nie? typeid
Arekadio napisał(a)
To moze inaczej. Mam klase A i dziedziczaca od niej klase B. W konstruktorze klasy B jednym z parametrow jest wskaźnik do obiektu klasy A. Chce miec mozliwosc weryfikacji, czy podany wskaznik jest rzeczywiscie wskaznikiem do obiektu klasy A, lub klasy po niej dzidziczacej.
Prawidłowo programując masz to przecież załatwione przez język...
B::B(const A *p)
{
// (*p) - jest klasy A lub pochodnej
}
Jeśli natomiast robisz jakieś dziwne numery to pozostaje RTTI.
A wystarczy taka konstrukcja ?:
B::B(const A *p)
{
try
{
a->jakasf();
}
catch ( ... )
{
*p = NULL;
}
}