vtkProp :: SafeDownCast () падает при попытке конвертировать vtkactor

Из руководства я понял, что vtksafedowncast — это безопасная операция. Но в моем приложении иногда происходит сбой, когда я пытаюсь преобразовать vtkactor в vtkprop (это происходит очень случайно). Я проверил на ноль перед прохождением vtkactor. Есть ли обработка исключений или какая-то другая проверка, чтобы убедиться, что актер пригоден для преобразования?

0

Решение

Вы можете использовать dynamic_cast<> чтобы попробовать, но ваш компилятор должен поддерживать RTTI.

class vtkActor:public vtkProp (){}; //their relationship

так что вы можете привести указатель vtkActor обратно к указателю vtkProp с помощью dynamic_cast<>.

Что касается vtkSafeDowncast, попробуйте это.

vtkActor * foo ;
foo = vtkActor::New() ;
vtkProp * m_prop ;
m_prop = (vtkProp*)(vtkProp::SafeDownCast(foo));

Или если используется dynamic_cast<>:

m_prop = dynamic_cast<vtkProp*>(foo) ;
0

Другие решения

Вам даже не понадобится приведение, так как vtkActor наследуется от vtkProp. Вы можете просто сделать

vtkProp* p = vtkActor::New();
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector