私は最近、C/C++ が主要な言語であるポジションの面接を受けました。ある質問の中で、vtable を使用して、階層内のどのクラスのベース ポインターが実際に格納されているかを判断できると言われました。
たとえば、あなたが持っている場合
class A
{
public:
A() {}
virtual ~A() {}
virtual void method1() {}
};
class B : public A
{
public:
B() {}
virtual ~B() {}
virtual void method1() {}
};
インスタンス化A * pFoo = new B()
すると、vtable を使用して pFoo に A または B のインスタンスへのポインタが含まれているかどうかを判断することは本当に可能ですか?