たとえば、2 つの「インターフェイス」とクラス タイプがあります。
class IPlugin
{
public:
virtual void Load(void) = 0;
virtual void Free(void) = 0;
};
class IFoo
{
public:
virtual void Foo(void) = 0;
};
class Tester: public IPlugin, public IFoo
{
public:
Tester() {};
~Tester() {};
virtual void Load()
{
// Some code here
}
virtual void Free()
{
// Some code here
}
virtual void Foo(void)
{
// Some code here
}
};
type のインスタンスに対して vtab が実際に持っている構造は何Tester
ですか? そして、 演算子はdynamic_cast
どのように動作しますか(dynamic_cast
つまり、演算子が有効な参照型変換のためにvtabをスキャンする方法を意味します)式:
Tester* t = new Tester();
IPlugin* plg = dynamic_cast<IPlugin*>(t);
IFoo* f = dynamic_cast<IFoo*>(plg);
前もって感謝します!