如何向上查询或向下查询接口指针
how to query up or query down the interface pointer?
我需要在程序中向上和向下查询接口指针,
我已经定义了接口
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。我正在寻找的是如何在执行期间升级或更改接口指针。所以我会查询并获取指向接口1的指针并执行方法x1稍后当我想要执行方法x2时,我需要查询指向接口2的指针以便执行方法x2。有道理吗?
假设Interface1
有一个虚方法,那么如果你有一个指向Iinterface1
的指针,你可以测试它是否是一个动态强制转换的Iinterface2
:
const Iinterface2 * is_Iinterface2 (const Iinterface1 *p) {
return dynamic_cast<const Iinterface2 *>(p);
}
如果结果是NULL
,那么p
不是来自于从Interface2
派生出来的对象。
c++没有动态查询的方法来确定一个类是否有特定的方法。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 查询SQLite数据库中的日期
- 如何在ArangoDb AQL查询中指定数据库
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- Visual C++GC接口如何启用它以及要包含哪个库
- Windows.h与GLFW.h的接口
- Qt SQLite没有查询或参数计数不匹配
- 如何使用c++在VS 2019上运行SQL查询
- 当字段可以为null时,如何使用C++接口在Avro中写入数据
- 提供与TMP和SFINAE的通用接口
- 为重写std::exception的库生成swig接口时出错
- 内联如何影响模块接口中的成员函数
- 从返回的顶点缓冲区查询顶点结构
- COM 接口 c# 封送数组数组
- 组件对象模型查询接口
- 为什么在 IUserNotificationCallback COM 对象上查询 IMarshall 接口
- 为什么需要查询接口
- 类接口查询
- 如何向上查询或向下查询接口指针
- 查询接口以查找具有 libpcap 的设备