我需要查询并查询程序中的接口指针
我有界面定义
struct Iinterface1
{
methods X1()
}
struct Iinterface2 : Iinterface1
{
methods X2()
}
queryInterface( *interface)
{
returns the pointer to one of above interface
}
我可以使用函数queryInterface()
查询并获取指向接口的指针因为interface2来了以后,我需要在我的程序中同时支持method1和method2,所以我不能有接口指针指向interface2并执行方法x1和方法x2。 我正在寻找的是如何在执行期间升级或更改接口指针。 所以我会查询并获取指向interface1的指针并执行方法x1以后当我想执行方法x2时,我需要查询我的指向interface2的指针,这样我就可以执行方法x2了。说得通? 感谢任何帮助,例如。
答案 0 :(得分:1)
假设Interface1
有一个虚拟方法,那么如果你有一个指向Iinterface1
的指针,你可以测试它是否是带有动态转换的Iinterface2
:
const Iinterface2 * is_Iinterface2 (const Iinterface1 *p) {
return dynamic_cast<const Iinterface2 *>(p);
}
如果结果为NULL
,则p
不是来自Interface2
派生的对象。
C ++无法通过动态查询来确定某个类是否具有特定方法。