Здравствуйте, 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;
}