Estuve recientemente en una entrevista para un puesto donde C/C++ es el idioma principal y durante una pregunta me dijeron que es posible usar el vtable para determinar qué clase en una jerarquía un puntero base en realidad almacena.Cómo usar el vtable para determinar el tipo de clase
Así que si, por ejemplo, que tienen
class A
{
public:
A() {}
virtual ~A() {}
virtual void method1() {}
};
class B : public A
{
public:
B() {}
virtual ~B() {}
virtual void method1() {}
};
y se ejemplariza A * pFoo = new B()
, ¿es realmente posible utilizar la viable para determinar si pFoo contiene un puntero a una instancia de A o B?
Gracias por las respuestas. Olvidé mencionar que pregunté si RTTI era lo que estaban buscando, y dijeron que, en general, desactivan RTTI, así que no es así. Es muy posible que la solución que estaban buscando fuera lo que Martin B describió –