jaka to klasa ?

  • Rejestracja: dni
  • Ostatnio: dni
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 ?

RE
  • Rejestracja: dni
  • Ostatnio: dni
0

pewnie chodzi Ci i wskaźnik, a nie uchwyt

poszukaj info o RTTI

  • Rejestracja: dni
  • Ostatnio: dni
0

Tak, wlasnie, o wskaznik mi chodzi.

BA
  • Rejestracja: dni
  • Ostatnio: dni
0

mozesz tez sprobowac przez rzutowanie ale to malo <ort>elegandzkie</ort> zachowanie (reinterpret_cast)

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

  • Rejestracja: dni
  • Ostatnio: dni
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.

vixen03
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 475
0

uzywasz polimorfizmu? dynamic_cast
nie? typeid

marcinEc
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 403
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...

Kopiuj
B::B(const A *p)
{
    // (*p) - jest klasy A lub pochodnej
}

Jeśli natomiast robisz jakieś dziwne numery to pozostaje RTTI.

  • Rejestracja: dni
  • Ostatnio: dni
0

A wystarczy taka konstrukcja ?:

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

}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.