我的类结构是这样的:
class MethodHelper : public QObject, public IMethodHelper {
public:
// Stuff
};
现在,我得到一个指向该对象的指针:
QObject* someObject = getMethodHelper();
在这里,我非常确定
someObject
是一种 MethodHelper。我以某种方式想将它转换为 IMethodHelper。我该怎么办?我目前的想法就像
QObject -> MethodHelper -> IMethodHelper
,比如:QObject* someObject = getMethodHelper();
MethodHelper* myHelper = qobject_cast<MethodHelper*>(someObject);
IMethodHelper* myIHelper = dynamic_cast<IMethodHelper*>(myHelper);
我的方法是否存在潜在缺陷?
最佳答案
您可以按照您介绍的方式进行操作,但这不是必需的。下面应该可以正常工作。
IMethodHelper* myIHelper = dynamic_cast<IMethodHelper*>(someObject);