我的类结构如下:
class MethodHelper : public QObject, public IMethodHelper {
public:
// Stuff
};
Run Code Online (Sandbox Code Playgroud)
现在,我得到一个指向该对象的指针:
QObject* someObject = getMethodHelper();
Run Code Online (Sandbox Code Playgroud)
在这里,我非常确定这someObject是一种MethodHelper.我想以某种方式将其转换为IMethodHelper.我该怎么办呢?
我目前的想法是QObject -> MethodHelper -> IMethodHelper,像:
QObject* someObject = getMethodHelper();
MethodHelper* myHelper = qobject_cast<MethodHelper*>(someObject);
IMethodHelper* myIHelper = dynamic_cast<IMethodHelper*>(myHelper);
Run Code Online (Sandbox Code Playgroud)
我的方法有潜在的缺陷吗?
你可以按照你提出的方式去做,但没有必要.下面应该工作正常.
IMethodHelper* myIHelper = dynamic_cast<IMethodHelper*>(someObject);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1817 次 |
| 最近记录: |