实际上是做两次类型转换。第一次,将CA类型转换为IX*型,因为CA派生于IX,第二次,将IX*转换为IUnkown,因为所有接口都派生自IUnknown.

解决方案 »

  1.   

    <IX*>用static_case<T>模板实现了一个参数为IX*的类。
      

  2.   

    horris(僧推月下门),进行两次转换时,他们的结构是一样的吗,如果不一样也可以进行转换吗
      

  3.   

    这是C++的语法,去看一下Think in C++的后面部分。
      

  4.   

    The expression static_cast < type-id > ( expression ) converts expression to the type of type-id based solely on the types present in the expression. No run-time type check is made to ensure the safety of the conversion.
      

  5.   

    static_cast<T>就象C语言的强制类型转换,但它可以转换类的实例。转换时检查源和目标是否有继承关系,无继承关系时编译会报错。
    dynamic_cast<T>同static_cast,但它检查源是否是目标的类或子类的实例。
    reinterpret_cast强制转换,不管有无继承关系。