从手册中我了解到vtksafedowncast是一个安全的操作。但在我的应用程序中,当我试图将vtkactor转换为vtkprop时,有时会崩溃(这种情况非常随机发生)。我在传递vtkactor之前检查了null。是否有任何异常处理或其他检查以确保演员适合转换?
答案 0 :(得分:0)
您可以使用dynamic_cast<>尝试,但您的编译器必须支持RTTI。
class vtkActor:public vtkProp (){}; //their relationship
因此您可以使用dynamic_cast<>将vtkActor指针强制转换回vtkProp指针。
至于vtkSafeDowncast,试试这个。
vtkActor * foo ;
foo = vtkActor::New() ;
vtkProp * m_prop ;
m_prop = (vtkProp*)(vtkProp::SafeDownCast(foo));
或者如果使用dynamic_cast<>:
m_prop = dynamic_cast<vtkProp*>(foo) ;
答案 1 :(得分:0)
你甚至不需要演员,因为vtkActor派生自vtkProp。你可以做到
vtkProp* p = vtkActor::New();