jaka to klasa ?

0

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 ?

0

pewnie chodzi Ci i wskaźnik, a nie uchwyt

poszukaj info o RTTI

0

Tak, wlasnie, o wskaznik mi chodzi.

0

mozesz tez sprobowac przez rzutowanie ale to malo ort! zachowanie (reinterpret_cast)

// Jejku, takiego orta to dawno nie widziałem - Q

0

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.

0

uzywasz polimorfizmu? dynamic_cast
nie? typeid

0
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.

0

A wystarczy taka konstrukcja ?:

B::B(const A *p)
{
   try
   {
      a->jakasf();
   }
   catch ( ... )
   {
      *p = NULL;
   }

}

1 użytkowników online, w tym zalogowanych: 0, gości: 1