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 に答える