Re: определить указатель является ли классом Х
От: st0nx  
Дата: 09.09.11 04:19
Оценка:
Здравствуйте, maks1180, Вы писали:

M>class BASE;

M>class A1 : BASE;
M>class A2 : BASE;

M>Есть указатель

M>BASE* ptr;

M>Как можно определить, является ли ptr указателем на класс A1 или A2 ?

M>P.S. На ассеблеме мне кажеться, что это можно сделать если сравнить v-table ptr и A1 и A2.


#include <iostream>
#include <typeinfo>

using namespace std;

class BASE {virtual void vvfunc() {}};
class A1 : public BASE { };
class A2 : public BASE { };


int main() {

  BASE *b1,*b2;
  b1 = new A1;
  b2 = new A2;


    cout << typeid(*b1).name() << endl;
    cout << typeid(*b2).name() << endl;

  return 0;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.