对象动态投射向下转换

时间:2017-01-27 14:15:59

标签: c++ pointers object

  • 我想问一下这行是从object_ptr到ptr 的向下转换?

  • 这是因为一个object_ptr不是ptr 而我们需要向下转换?

    MyClass * ptr = dynamic_cast<MyClass*>(object_ptr);
    

1 个答案:

答案 0 :(得分:0)

MyClass * ptr = dynamic_cast<MyClass*>(object_ptr);
     

是从object_ptr到ptr的向下转换?

这是从object_ptrMyClass*类型的演员表。变量ptr是从转换结果中复制初始化的。当且仅当object_ptr是指向基础MyClass的指针时,引用的代码才执行向下转换。

  

这是因为object_ptr不是ptr而我们需要向下转换?

object_ptrptr是变量。变量不是另一个变量,但这与向下转换无关。