コード内のすべてのdynamicCastをQTのobjectCastに置き換えようとしています。しかし、私はちょっとした問題に遭遇しました。これが私のオブジェクトの階層です:
class ABase : public QObject
class IAbility; // Registered as Qt Interface
class ISize; // Registered as Qt Interface
class Derived : public ABase, public IAbility, public ISize; // Uses Q_INTERFACES
objectCastを使用して、DerivedをISizeまたはIAbilityに変換できます。ただし、コードの1つのポイントで、次の変換を実行したいと思います:Derived->ISize->IAbility。その最後のキャストでエラーが発生します。IAbilityはISizeとはまったく関係がないため、問題が発生する可能性があります。この時点でダイナミックキャストを行うことはできますが、したくありません。