0

从手册中我了解到 vtksafedowncast 是一种安全操作。但是在我的应用程序中,有时当我尝试将 vtkactor 转换为 vtkprop 时它会崩溃(这是非常随机地发生的。)。在通过 vtkactor 之前,我确实检查了 null。是否有任何异常处理或其他检查以确保演员适合转换?

4

2 回答 2

0

您甚至不需要演员表,因为 vtkActor 派生自 vtkProp。你可以做

vtkProp* p = vtkActor::New();
于 2012-12-14T19:18:09.080 回答
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) ;
于 2012-12-14T05:49:15.320 回答